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

相关推荐
岁月宁静4 分钟前
图像生成接口的工程化设计与落地实践:封装豆包图像生成模型 Seedream 4.0 API
前端·人工智能·node.js
谢尔登17 分钟前
【GitLab/CD】前端 CD
前端·gitlab
风雨同舟的代码笔记18 分钟前
5.Python函数与模块化工程实战:构建高复用代码体系
python
ruanCat19 分钟前
在使用 changeset 时,如何在更新底部依赖时,触发上层依赖更新
前端·github
wendao19 分钟前
我开发了个极简的LLM提供商编辑器
前端·react.js·llm
烟袅23 分钟前
从一行代码说起:深入理解 JavaScript 中的字符串类型与模板字符串
前端·javascript·代码规范
慢知行27 分钟前
从 0 到 1 搭建 Vite+Vue3+TS 工程模板:能上手操作的指南
前端·vue.js·typescript
问道飞鱼28 分钟前
【数据库知识】PGSQL常见命令行与函数
数据库·oracle·pgsql
CoookeCola29 分钟前
MovieNet (paper) :推动电影理解研究的综合数据集与基准
数据库·论文阅读·人工智能·计算机视觉·视觉检测·database
咖啡の猫29 分钟前
Vue解决开发环境 Ajax 跨域问题
前端·vue.js·ajax