python学习第七天--Django项目创建与应用及生命流程周期

python学习第七天--Django项目创建与子应用及生命流程周期
摘要由CSDN通过智能技术生成

预备知识

HTTP协议的认识

HTTP协议就是客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。

  • 基于 TCP/IP
    • HTTP是一个属于应用层的面向对象的协议。
    • HTTP协议工作于客户端-服务端架构上。
  • 基于请求-响应模式
    • 浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
    • Web服务器根据接收到的请求后,向客户端发送响应信息。


HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。

怎么解决Http 协议无状态协议?
无状态协议解决办法:

  • 通过Cookie
  • 通过Session会话保存

Http请求中常见的请求方式

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

  • HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
  • HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

在网页上按fn+F12进入开发者模式(或者右键选择检查)

  • GET请求是可以缓存的,我们可以从浏览器历史记录中查找到GET请求,还可以把它收藏到书签中;且GET请求有长度限制,仅用于请求数据(不修改)。因GET请求的不安全性,在处理敏感数据时,绝不可以使用GET请求。
  • POST请求永远不会被缓存,且对数据长度没有限制;我们无法从浏览器历史记录中查找到POST请求。
  • PUT方法会将包含的元素放在所提供的URI下,如果URI指示的是当前资源,则会被改变。如果URI未指示当前资源,则服务器可以使用该URI创建资源。

MVC模式和MTV模式

MVC 模式
MVC 就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射( ORM ),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求。

MTV 模式
MTV模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,在Python的世界中,基本(除了Pylons)都使用了 MVC 的变种 MTV (Model Templates View 模型-模板-视图)。
Django 的MTV分别是值:

  • M 代表模型(Model): 负责业务对象和数据库的关系映射( ORM )。
  • T 代表模板 (Template):负责如何把页面展示给用户( html )。
  • V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。

除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

Django项目创建与子应用

你所需要知道的关于 Django 的一切。
在这里插入图片描述

后台管理

使用专业版pycharm直接创建Django项目

  • init.py :一个空文件,它告诉Python这个目录应该被看做一个Python包
  • asgi.py:客户端向服务端发送信息的网关接口#这是Django3.x版本才有的
  • settings.py:基本的配置信息,如时区、语言等
  • urls.py:路由配置
  • wsgi.py:web服务网关接口,它会开启一个服务让用户来访问
  • manage.py:一个命令行工具,可以使你用多种方式对 Django 项目进行交互
  • 内层的目录:项目的真正的Python包

在terminal里进行测试


python manage.py runserver 端口号 #可指定访问端口号

启用后台Admin 站点管理


数据库迁移
setting.py文件中的设置

terminal输入以下命令
python manage.py makemigrations
python manage.py migrate





创建管理员用户

# 按提示输入用户名、邮箱、密码
python manage.py createsuperuser
  • 启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
  • 进入管理站点,默认可以对 groups、users 进行管理

管理界面本地化

编辑 settings.py 文件,设置编码、时区  #为了显示中文和中国的时间
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

自定义模型加入后台管理

打开 bookApp/admin.py 文件,注册模型:
from django.contrib import admin
from models import Book
admin.site.register(Book)

# bookApp/models.py
class Book(models.Model):
# ........此处省略
# 自定义对应的表名,默认表名:bookApp_book
class Meta:
db_table = "books"
# 单数时显示的名称
verbose_name = '图书信息'
# 复数时显示的名称
verbose_name_plural = '图书信息'



自定义管理页面

  • Django 提供了 admin.ModelAdmin 类
  • 通过定义 ModelAdmin 的子类,来定义模型在 Admin 界面的显示方式
from django.contrib import admin
from bookApp.models import  Book,Hero
# 自定义后台站点管理的拓展阅读: https://docs.djangoproject.com/zh-hans/3.1/ref/contrib/admin/
# Register your models here.

class HeroInline(admin.StackedInline):  #内嵌关联注册类
    model = Hero
    extra =<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值