Python之Web开发中级教程—-创建Django子应用
- 基于上一个教程的Django项目(可以先看上一集,链接如下:)
https://mp.csdn.net/mp_blog/creation/editor/136724897
2.创建子应用
python manager.py startapp book
admin.py:跟网站的后台管理站点配置相关。
apps.py:用于配置当前应用的相关信息。
Migrations目录:用于存放数据库迁移历史文件。
models.py:用户保存数据库模型类。
tests.py:用于开发测试用例,编写单元测试。
views.py:用于编写Web应用视图。
3.在项目中注册应用
虽然创建了应用,但还没跟项目工程建立联系。
(1)在项目工程的settings.py中,INSTALLED_APPS项添加应用的配置信息文件apps.py中的Config类
4、建立MVT模型
Tip:
MVT设计模式中的Model, 专门负责和数据库交互.对应(models.py)
由于Model中内嵌了ORM框架, 所以不需要直接面向数据库编程.
而是定义模型类, 通过模型类和对象完成数据库表的增删改查.
ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象.
不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.
默认采用sqlite3数据库来存储数据
1)Model
(1)定义模型类
BookManager的数据关系:书籍和书中的人物
BookInfo书籍信息表
字段名 | 字段类型 | 字段说明 |
id | AutoField | 主键 |
name | CharField | 书名 |
id | name |
1 | 西游记 |
2 | 三国演义 |
PeopleInfo人物信息表
字段名 | 字段类型 | 字段说明 |
id | AutoField | 主键 |
name | CharField | 人名 |
gender | BooleanField | 性别 |
book | ForeignKey | 外键 |
id | name | gender | book |
1 | 孙悟空 | False | 1 |
2 | 白骨精 | True | 1 |
3 | 曹操 | False | 2 |
4 | 貂蝉 | True | 2 |
(2)编写Models.py的代码
from django.db import models
# Create your models here.
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
# 创建字段,字段类型…
name = models.CharField(max_length=10)
# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
name = models.CharField(max_length=10)
gender = models.BooleanField()
# 外键约束:人物属于哪本书
book = models.ForeignKey(BookInfo,on_delete=models.CASCADE)
(3)Model迁移建表
生成迁移文件:根据模型类生成创建表的语句
python manage.py makemigrations
执行迁移:根据上一个命令生成的语句在数据库中创建表
python manage.py migrate
2)View
(1)定义视图
视图就是一个Python函数,被定义在应用的views.py中.
视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息.
视图必须返回HttpResponse对象,包含返回给请求者的响应信息.
需要导入HttpResponse模块 :from django.http import HttpResponse
定义视图函数 : 响应字符串OK!给客户端
(2)编写views.py的代码
From Django.shortcuts import render
#导入HttpResponse模块
From Django.http import HttpResponse
#Create your views here
#定义视图函数
Def index(request):
Return HttpResponse(‘OK!’)
(3)配置URLconf
在项目中定义URLconf 添加
from django.urls import path,include
path(‘’,include(‘book.urls’)),
在应用中定义URLconf 添加 path(‘’,include(‘book.urls’)),
新建urls.py文件,写入如下的代码:
from django.urls import path
from book.views import index
Urlpatterns = [
Path(‘index/’,index),
]
3)Template
需要漂亮的界面,就采用Template,本项目输出简单,省略Template,可以参见后续教程。
测试:请求访问:http://127.0.0.1:8000/index/
对应的源代码可以在下面的链接下载:
https://download.csdn.net/download/zhengyuanyehit/88971158