python--Django框架

news2025/6/18 13:38:53

文章目录

  • 一、预备知识
    • MVC和MTV模式
  • 二、Django框架
    • 启用后台admin站点管理
    • 项目的数据库模型
    • 自定义模型加入后台管理
    • Django请求的生命周期

一、预备知识

HTTP协议:
------超文本传输协议,基于TCP/IP;HTTP属于应用层的面向对象的协议
------基于请求–响应模式
HTTP是无状态协议,那么我们如何解决HTTP的无状态协议呢:
------1、通过Cookie(客户端)
------2、通过Session(服务器端)
HTTP请求中常见的请求方式在这里插入图片描述

MVC和MTV模式

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

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

二、Django框架

启用后台admin站点管理

站点分为后台管理和前台管理,后台管理就是我们熟知的增删改查,由于开发这些重复的功能太过于单调,所以Django会根据定义的模型类完全自动生成管理模块,Django框架中有一个非常强大的应用功能:自动管理界面,这个功能常常被web平台管理者使用,去管理整个web平台,默认情况下setting.py配置文件中INSTALLED_APPS包含以下应用程序:
在这里插入图片描述
1、数据库迁移
使用Django自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用

python manage.py makemigrations
python manage.py migrate

2、创建管理员用户

python manage,py createsuperuser

3、管理界面本地化
如果我们不经过任何修改,都会默认为英文,所以为了我们更好的使用和管理,我们要将管理界面本地化,也就是修改时区和语言

编辑settings.py
LANGUAGE_CODE = ‘zh-hans’
TIME_ZONE = ‘Asia/Shanghai’

4、我们可以在主路由下添加子路由
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个时候如果我们的请求路径为/book/就会访问子路由,从而访问大我们的前端页面,采用HTML将会使页面更加好看,以下使页面访问效果:

项目的数据库模型

这个项目中我们使用sqllite3,没有使用mysql,所以省略了一部分内容;在这里我们使用到了ORM(对象关系映射),用来把对象模型表示的对象映射到基于SQL的关系模型数据库中

一对多关系:外键写在多的一端
1:n

开始之前我们要将子应用添加在配置文件中,这样才能被读取
在这里插入图片描述

这里的每个类其实都对应的数据库表,属性对应数据库表中的列,默认会添加id,并设置为主键
在这里插入图片描述
完成之后要重新进行数据库迁移,这里会显示我们修改或者添加的地方,并且将这些新的修改保存在新的python文件中
在这里插入图片描述

我们可以进入交互式界面,对数据库进行增删改查,进行添加操作之后,一定要记得保存(save)
在这里插入图片描述

自定义模型加入后台管理

我们在shell交互界面对数据库进行增删改查之后,我们访问站点还是无法看到效果,这是因为我们没有将我们定义的模型加入后台管理,因此我们需要在admin中加入模型
在这里插入图片描述
但是这个时候还是会存在问题,当我们去访问的时候确实能看到Book和Hero已经可以在页面中看到,但是他们的显示都是英文,对我们很不友好,所以我们也要将他们汉化,相当于给他们添加别名
在这里插入图片描述
这个时候我们再去访问就可以看到我们希望的界面
在这里插入图片描述

这里就相当于再添加图书的这个模块内嵌了一个模块,让我们可以在添加图书的时候,也可以添加图书相关的人物,这样用户的体验会更好一些
在这里插入图片描述
在这里插入图片描述

由于我们在添加图书的时候,有些信息不一定熟悉,所以我们可以将主要的信息设置为必填,其他信息设置为选填,在人物信息这个模块,我们可以将其设置为可以通过姓名和人物描述进行搜索,可以通过性别进行选择,如果书籍或者人物信息比较多,我们也可以设置分页展示,每页规定只能显示五行等等
在这里插入图片描述
如果我们想要返回的页面更加好看,就需要借助HTML帮助我们完成
在这里插入图片描述
在这里插入图片描述

Django请求的生命周期

wsgi : 封装请求后交给后端的web框架( Flask、Django )。
请求中间件: 对请求进行校验或在请求对象中添加其他相关数据,例如: csrf、
request.session 。
路由匹配: 根据浏览器发送的不同 url 去匹配不同的视图函数。
视图函数: 在视图函数中进行业务逻辑的处理,可能涉及到: ORM、Templates 。
响应中间件: 对响应的数据进行处理。
wsgi : 将响应的内容发送给浏览器。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL#3(约束,数据库设计,多表查询,事务)

目录 一.约束 二.数据库设计 1.数据库设计的概念 2.数据库设计的步骤 3.表关系 三.多表查询 1.内连接和外连接 2.子查询 四.事务 1.简介 2.事务语法 3.事务四大特征 一.约束 1.约束的概念 约束是作用于表中列上的规则,用于限制加入表的数据约束的存在保证…

java-线程池

1、线程池的自我介绍: ● 线程的数量过多会反复的创建并销毁 ● 为什么使用线程池? ○ 第一:反复创建线程开销大 ○ 第二:过多的线程会占用太多内存 解决以上两个问题的思路: ○ 用少量的线程-避免内存占用过多 ○ 让这…

重磅干货!一文读懂「企业级架构」

本文来自: 刘剑桥 极狐(GitLab) 高级解决方案架构师 首先来看两个真实的小故事: 1 小 A 公司有 50 人,作为运维人员,小 A 为公司搭建了一个私有化 GitLab 社区版。 某日,开发同学发现不能够访问 GitLab 了。小 A 查…

Web3中文|随着世界杯结束,web3体育可能达到800亿美元

随着卡塔尔世界杯的结束,Web3 Studios发布了一份对web3体育的深度报道。它声称该行业正处于发展拐点,到2030年其规模有可能达到800亿美元。 该报告数据贡献者来自Animoca Brands、FaceIt、ConsenSys、The Football Company、Apex Capital、Upland、Loot…

在Windows端使用XShell、WinSCP连接WSL2(win10的linux子系统/Ubuntu)

一、安装SSH服务 1、在ubuntu中输入: sudo apt-get install openssh-server 2、开启ssh服务 sudo service ssh start二、在Windows Subsystem for Linux (WSL2)中自动启动ssh服务 WSL2是Windows 10中提供的Linux子系统,基于Ubuntu内核。…

技术开发103

技术开发103 业务内容: 汽车音响等汽车电子部件试制、电子设备部件试制、精密钣金试制精密钣金试制 公司简介: 代表:中山尚美 成立时间:1950年6月 资本金:1000万日元 员工数:15名 资格认证/ S140001…

Python 实现将文本中数据批量写到Excel

欢迎小伙伴的点评✨✨,Python 常规应该开发系列,会渐进更新,如有需求,可留言🛒🛒🛒, 博主定当以每秒120赫兹的速度✈✈🚅🚅,写好博客。 文章目录前…

【408篇】C语言笔记-第十五章( 考研必会的查找算法考研真题实战)

文章目录第一节:顺序查找原理及实战1. 顺序查找原理解析2. 顺序查找代码实战第二节:折半查找原理及实战1. 折半查找原理解析2. 折半查找代码实战第三节:二叉排序树原理及建树实战1. 二叉排序树原理解析2. 二叉排序树代码实战第四节&#xff1…

Docker应用部署迁移备份DockerFile

文章标题一、应用部署1)MySQL部署2)Redis部署3)Nginx部署二、迁移与备份1)容器做成镜像2)把镜像被分成压缩包三、DockerFile1)基于Centos创建镜像自带Vim软件2)制作Django项目镜像一、应用部署 …

计算机毕设Python+Vue学生学科竞赛管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【第十三章 MySQL管理(mysqladmin,mysqlbinlog,mysqlshow,mysqldump,mysqlimport/source)】

第十三章 MySQL管理(mysqladmin,mysqlbinlog,mysqlshow,mysqldump,mysqlimport/source) 1.系统数据库: Mysql数据库安装完成后,自带了以下四个数据库,具体作用如下: 2.mysql: 该mysql不是指mys…

计算机毕设Python+Vue学院校友信息管理系统的(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Promise(二) 关键问题+async+await

目录 1.几个关键问题 2. async函数 3. await表达式 4.async与await实践结合 5.async与await实践结合——发送Ajax请求获取信息 1.几个关键问题 在promise封装之前做准备 <script>let p new Promise((resolve, reject) > {//三种方式promise状态最开始是pending/…

【LeetCode】1760. 袋子里最少数目的球

袋子里最少数目的球 给你一个整数数组 nums &#xff0c;其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次&#xff1a; 选择任意一个袋子&#xff0c;并将袋子里的球分到 2 个新的袋子中&#xff0c;每…

媒体查询。

媒体查询( Media Query )是CSS3新语法 使用media查询&#xff0c;可以针对不同的媒体类型定义不同的样式 media 可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中&#xff0c;页面也会根据浏览的宽度和高度重新渲染页面 目前针对很多苹果手机、Android手机&am…

【算法】【字符串模块】字符串数组中两个字符之间的最短距离以及对hashcode以及equals的理解

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介绍 …

来聊一聊|ConcurrentModificationException异常的解决

一. 前言 最近耀哥的一个学生&#xff0c;在使用使用ArrayList的subList的时候&#xff0c;发生了ConcurrentModificationException的异常。耀哥觉得这个现象非常具有代表性&#xff0c;估计有不少同学都会在同样的问题上犯迷糊&#xff0c;所以今天耀哥特意把这个问题记录下来…

设备台账管理系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 模块划分&#xff1a;公告类型、公告信息、员工信息、仓库信息、设备类型、设备信息、供应商信息、采购信息、设备调拨、…

8个Spring事务失效的场景,你碰到过几种?

前言 作为Java开发工程师&#xff0c;相信大家对Spring种事务的使用并不陌生。但是你可能只是停留在基础的使用层面上&#xff0c;在遇到一些比较特殊的场景&#xff0c;事务可能没有生效&#xff0c;直接在生产上暴露了&#xff0c;这可能就会导致比较严重的生产事故。今天&a…

基于Android7 的msm8953芯片的nfc调试

目录 报错日志 NFC芯片重要的5个引脚 时序图分析 报错日志 01-01 19:05:22.570 0000 2341 2532 D NxpFwDnld: phDnldNfc_InitImgInfo:SUCCESS 01-01 19:05:22.570 0000 2341 2532 D NxpFwDnld: Processing Normal Sequence.. 01-01 19:05:22.570 0000 2341 2532 D NxpFwD…