文章目录

  • 一、预备知识
    • 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 : 将响应的内容发送给浏览器。

python--Django框架相关推荐

  1. Python Django框架入门第一课

    Python Django框架入门 1.Django简介 Django使用python开发的一个免费的Web框架,几乎囊括了Web应用的方方面面,用于快速搭建高性能.优雅的网站. 2.配Django运 ...

  2. python网站设计理念_简单介绍下python Django框架的历史,设计理念及优势_Django讲解2...

    简单介绍下python Django框架的历史,设计理念及优势 Django是一个高层次的 Python Web 框架,它是一个鼓励快速开发和干净,实用的框架设计.Django可以更容易地快速构建更好 ...

  3. liunx+python+django框架实现图片生成二维码

    点击箭头处"蓝色字",免费领测试技术及面试资料! 余生皆欢喜 liunx+python+django框架实现二维码生成器 首先我简单的介绍下django:django官网解释就是如 ...

  4. 基于Python Django框架后端的微信小程序开发

    刚做完一个股票信息服务类的微信小程序(小程序名字"博股论基",大家有兴趣可以搜一下),也有一些心得,在这里记录一下开发过程,算是个开发笔记,同时也希望能给需要的同学一些帮助. -- ...

  5. 利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!

    利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow  + qrcode 模块 核心代码import qrcodeqr = q ...

  6. Python+Django框架Web应用开发-欧阳桫-专题视频课程

    Python+Django框架Web应用开发-237人已学习 课程介绍         系统介绍使用Django框架开发Web应用程序,当然,依然水煮风格 课程收益     掌握Django框架的使用 ...

  7. [Python] Django框架入门

    说明:Django框架入门 当前项目环境:python3.5.django-1.11 项目名:test1 应用名:booktest 命令可简写为:python manager.py xxx => ...

  8. python django框架如何导出_python框架django的数据库的正向生成和反向生成

    正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model.py的表. 反向生成,指的是先在数据库中create table,然后通过dj ...

  9. python django框架分析_Django框架模型简单介绍与使用分析

    本文实例讲述了Django框架模型简单介绍与使用.分享给大家供大家参考,具体如下: ORM介绍 ORM Object relational mapping 对象关系映射 把面向对象中的类和数据库表一一 ...

  10. 基于python+django框架+Mysql数据库的校园二手书籍交易系统设计与实现

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的校园二手书籍交易系统,整个网站项目使用了B/S架构,基于python的Django框架下开发:用户通过登录网站,查询二手交易商品 ...

最新文章

  1. 每日一皮:昨晚梦见男朋友和别的女人在逛街,梦里我的第一反应就是查源代码......
  2. Unity 2017 Game Optimization 读书笔记(1)Scripting Strategies Part 1
  3. 【机器视觉学习笔记】二值图像连通区域提取算法(C++)
  4. MessageQueue Message Looper Handler的解释说明
  5. css中的一些问题及解决方法
  6. 初学者python笔记(time模块、random模块功能分析)
  7. 成功 打不开_switch商店打不开怎么办?手把手教你用这五种方法成功进入eshop
  8. Julia对矩阵进行预先赋值
  9. 自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter
  10. 计算机桌面如何分区,讲解电脑如何分区
  11. win7旗舰版恢复出厂设置没有修复计算机,教你win7旗舰版怎么恢复出厂设置
  12. maxima 代数方程求解
  13. 解决error mounted is not defined no-undef
  14. 用例图、活动图和顺序图的关系
  15. 读stormzhang的笔记
  16. docker容器虚拟技术
  17. Jest,karma结合Vue-test-utils的优秀文章
  18. 谈谈北京的租房和买房
  19. 湘大校内好项目,现诚寻可靠的创业合伙人
  20. win10声音设置没有麦克风降噪的解决办法

热门文章

  1. 计算机视觉怎么知道你在发小黄图...
  2. 几个不错的国外免费虚拟主机 Free host
  3. SKG、倍轻松“亮红灯”,网红按摩仪难逃“过气命”?
  4. 少儿C++快乐编程网络教程
  5. Openssl漏洞(CVE-2022-2274)修复步骤实施手册
  6. 冯诺依曼关于计算机的名言,冯诺依曼的名言
  7. FH8626V100之开发环境搭建
  8. 表格标题中方正小标宋简体为什么显示不一样?
  9. 如何用深度学习处理结构化数据?
  10. 金闪PDF编辑器:Windows端最好用的免费PDF编辑器上线了