Python之Web开发中级教程----创建Django子应用

Python之Web开发中级教程----创建Django子应用

  1. 基于上一个教程的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

相关推荐
捕鲸叉18 分钟前
创建线程时传递参数给线程
开发语言·c++·算法
Devil枫19 分钟前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
A charmer22 分钟前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq24 分钟前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
阡之尘埃1 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
尚梦1 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
Channing Lewis1 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
GIS程序媛—椰子1 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
记录成长java2 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
前端青山2 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js