第一个 APP
创建 Django 项目 mysite,进入 urls.py 文件,可以在该文件中定义一个 index 函数,并在 urlspatterns 列表中添加 URL,代码如下所示:
from django.contrib import admin
from django.urls import path
# 新增导入
from django.http import HttpResponse
# 新增代码
def index(request):
return HttpResponse('Index')
urlpatterns = [
path('admin/', admin.site.urls),
# 新增 URL
path('index/', index)
]
启动项目,在 URL 地址栏输入 http://127.0.0.1:8000/index/ 显示如下页面
说明定义的 index 视图函数与定义的 URL 完成了映射,index 函数就是视图函数,负责处理前端提交的数据并且与后端进行交互。
如果业务或者视图函数比较多,全部写在 urls.py 文件中未免也太过拥挤并且不易维护,且 urls.py 在 Django 项目中的定位就是用来书写 URL 映射路径的;因此我们需要拆分
可以在项目目录 mysite 下单独创建一个 Python Package,命名为 polls 并且在该 Python 包中创建一个 views.py 专门用来保存视图函数,在该文件中输入一个 index 视图函数,代码如下所示:
from django.http import HttpResponse
def index(request):
return HttpResponse('polls/index')
接着在 urls.py 文件中定义一个 URL 映射
from django.contrib import admin
from django.urls import path
# 新增
from polls import views
urlpatterns = [
path('admin/', admin.site.urls),
# 新增
path('index/', views.index)
]
保存之后,Django 会重新加载该文件,浏览器访问 http://127.0.0.1:8000/index/
接着我们可以新建一个 models.py 文件用来保存 ORM 模型,该 ORM 模型对应着数据库中的一张表,创建一个 forms.py 对应着前端页面的表单
创建完这些之后整个 polls 包就是一个 Django 中的 APP,这就是 APP 中各个文件的作用,我们可以通过 Django 创建一个 APP,然后可以自动创建这些文件,在项目目录下通过如下命令创建:
python manage.py startapp polls
通过命令自动创建的 APP 包含以下文件
Django 项目推荐的规范是按照功能或者模块进行分层,也就是一个个的 APP,所有和某个模块相关的视图函数都写在对应的 APP 的 views.py 文件中,并且模型和表单也是类似。
注意在创建完 APP 后一定要在 settings.py 文件中的 INSTALLED_APPS
列表中进行注册,如下所示:
除此之外 settings.py 文件中通过 DEBUG=True
这项设置默认开启了 Debug 模式,方便进行错误排查,如果开启了 Debug 模式:
- 当修改了 Django 项目的代码时,保存之后 Django 会自动重启项目,无须手动重启
- 如果出现 Bug,浏览器页面会出现详细的出错信息
要注意的是 Django 项目在生产环境中一定要讲 DEBUG
设置为 False,在开发环境中如果设置了 DEBUG=False
则需要设置 ALLOWED_HOSTS
即允许访问的地址 IP 地址,设置为 0.0.0.0
则表示所有的 IP 都可以访问本机中的 Django 应用。