Django创建子应用和视图

创建子应用

创建

我们可以在项目的根目录下, 调用命令行, 创建子应用:

# 创建子应用的常见命令: 

python manage.py startapp 子应用名称
  • python : python3 解释器
  • manage.py : 上一章创建项目工程的时候, 生成的管理整个项目的文件
  • startapp : 创建子应用的指令
  • 子应用名称 : 这个名称可以自己随意定, 一般会根据项目需求来指定.

在刚才创建的 demo 工程中,想要创建一个用户 users 子应用模块,可执行:

# 进入项目的根目录中: 
cd ~/Desktop/code/demo

# 执行生成子应用的指令, 生成一个叫users的子应用: 
python manage.py startapp users

执行后,可以看到工程目录中多出了一个名为 users 的子目录。

一般一个子应用代表一个模块, 例如: 购物车模块, 支付模块, 商品展示模块等...

子应用目录说明

查看此时的工程目录,结构如下:

 

 生成的子应用中各个文件的作用:

admin.py 文件跟网站的后台管理站点配置相关。
apps.py 文件用于配置当前子应用的相关信息。
migrations 目录用于存放数据库迁移历史文件。
models.py 文件用户保存数据库模型类。
tests.py 文件用于开发测试用例,编写单元测试。
views.py 文件用于编写Web应用视图。

配置子应用

创建出来的子应用目录文件虽然被放到了工程项目目录中,但是 django 工程并不能立即直接使用该子应用,需要注册安装后才能使用
settings 中默认的配置信息
settings 文件里, installed_apps 列表中工程默认配置的信息:

添加子应用到 settings 中
配置子应用信息也被称为: 注册安装一个子应用,

即, 将子应用的配置信息文件 apps.py 中的 Config 类添加到 INSTALLED_APPS 列表中。

例如:

将刚创建的 users 子应用中 apps.py 文件的信息

( users.apps.UsersConfig ), 添加到 INSTALLED_APPS 中, 如图所示:

使当前总的项目知道我们新添加的模块(子应用). 这样方便项目工程调用

创建视图

创建

打开刚创建的 users 模块,在 views.py 中编写视图代码。

# 从 django.http 模块中导入 HttpRespose
from django.http import HttpResponse


def index(request):
    """
    index视图
    :param request: 包含了请求信息的请求对象
    :return: 响应对象
    """
    return HttpResponse("hello the world!")
说明:

视图函数的第一个传入参数必须定义,用于接收 Django 构造的包含了请求数据的 HttpReqeust 对象,通常名为 request。
视图函数的返回值必须为一个响应对象, 可以将要返回的字符串数据放到一个 HTTPResponse 对象中。

定义路由URL

1) 在子应用中新建一个 urls.py 文件保存该应用的路由, 一般我们把子应用中的路由称为: 子路由

把项目中总体的 urls.py 路由文件称为总路由.

2) 在 users.urls.py 文件中定义子路由信息
# 从 urls 模块中导入 re_path
from django.conf.urls import re_path
# 从当前目录导入我们的视图模块 views
from . import views

# urlpatterns 是被 django 自动识别的路由列表变量
urlpatterns = [
    # 每个路由信息都需要使用 url 函数来构造
    # url (路径, 视图)
    re_path(r'^index/$', views.index),
]
3) 在工程总路由 demo / urls.py 中添加数据:
# 导入 include 函数
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    # django默认就有的路由配置信息, 第一行不用管:
    path('admin/', admin.site.urls),

    # 添加如下的路由配置信息:
    path(r'users/', include('users.urls')),
]
使用 include 来将子应用 users 里的路由文件( urls.py )包含到工程总路由中
r'^users/' 决定了 users 子应用的所有路由都以 /users/ 开头,如我们刚定义的视图 index, 其最终的完整访问路径为 /users/index/. 这里可以不写总路由的. 例如: r'', 那么我们访问 index 的完整路径就是: /index/ 了.
4) 启动运行

重新启动 django 程序

python manage.py runserver

在浏览器中输入网址 http://127.0.0.1:8000/users/index/ 可看到返回的信息

猜你喜欢

转载自www.cnblogs.com/tracydzf/p/12698083.html