0316-Django框架及其运行流程

参考书

在这里插入图片描述

环境配置与测试代码 2025年3月12日09:21:12

第一步,需要安装新的Django虚拟环境;

conda create -n djangotest python=3.8
conda activate djangotest
pip install django==3.1.5 指定安装的版本

conda activate djangotest
第二步按照书上的P10-P14页面进行编写,主要的步骤包括
建项目
建应用
注册应用
构建View
构建Template
运行应用
第三步运行得到访问结果
在这里插入图片描述

1、Django框架

  • 作用:帮助开发者快速开发安全、可维护、可扩展的Web应用程序。
  • 模式:Django中通常被称为MTV(Model-Template-View)模式。(1)Model负责与数据库进行交互,提供了一个丰富的API用于查询数据库,无需编写SQL语句。(2)Template数据呈现。(3)View负责业务逻辑,是模型与模板之间的桥梁。视图接收HTTP请求,经过一定的逻辑处理后,从Model中获取数据,然后调用Template,将处理后的数据传递给Template,最后返回HTTP响应。
    Django 框架下的 V 视图(View)不负责处理用户输入,只负责选择要展示的数据并传递到 T 模板(Template)上。然后,由 T 模板(Template)负责展示数据(展示效果),并最终呈现给终端用户。

在这里插入图片描述
当用户在浏览器(Web Browser)中访问 url 时,Django 服务器会接收到一个 HTTP 请求,通过服务器端特定的 Handler(ModPythonHandler),创建 HttpRequest 并传递给中间组件(Request Midware)进行处理,这些中间组件起着功能增强的作用。

Django 服务器会根据 ROOT_URLCONF 配置的参数来加载 URLConf;然后按顺序逐个匹配 URLConf 中的 URLpatterns,如果匹配成功,则会调用相关联的 View 视图中间件函数,并将 HttpRequest 对象作为第一个参数向下传递;最后,通过 View 视图返回一个 HttpResponse 对象(通常是 Response)。

在这里插入图片描述
在这里插入图片描述

Django优势
基于 Python 语言及 MVC 模式,具有开发快捷、低耦合、部署方便、可重用性高和维护成本低等显著特点。
通过一个 URL 分发器模块进行 URL 分派,分发器使用正则表达式来匹配 URL,支持开发人员采用自定义 URL 方式,且没有框架的特定限定,使用起来非常灵活。
可以方便地生成各种表单模型,实现表单的有效性检验,且支持从自定义的模型实例生成相应的表单。
具有强大且可扩展的模板语言,支持分隔设计、内容和 Python 代码,并且具有可继承性。
以 Python 类的形式定义数据模型,通过 ORM(对象关系映射)将模型与关系数据库进行连接,开发人员将得到一个非常容易使用的数据库 API,同时也支持在 Django 框架中直接使用原始 SQL 语句。
内置国际化系统,支持开发多种语言的 Web 网站。
缓存系统采用与 memcached、Redis 等缓存系统联用的方式,提高了页面的加载速度。
内置了一个可视化的、自动化管理员界面(Admin Site),其类似于一个 CMS 系统(内容管理系统),开发人员可以方便快捷地通过该界面进行人员管理和内容更新等操作。

2、Django运行流程

请求、分派、视图处理、模板渲染、响应
第一步用户请求:用户在浏览器中请求一个页面。
第二步URL分派器:Django项目的urls.py文件包含网站的URL模式(路由),Django使用这些模式来决定由哪个View来处理当前的请求。
第三步视图处理:视图函数或类被调用,会与Model交互(数据库查询)并选择一个Template。
第四步Template渲染:View向Template传递数据,Template被渲染成最终的HTML。
第五步响应用户:渲染后的HTML通过HTTP响应返回给用户的浏览器。

3、Django核心模块

3.1 Django ORM(对象关系映射)

Django ORM(Object-Relational Mapping,对象关系映射)是允许开发者通过Python代码操作数据库,而不是直接写SQL语句。

  • 数据库表(Table)→ Python类(Class);
  • 表记录(Record)→ 类实例(Instance);
  • 表字段(Field)→ 类属性(Attribute)。
    使用Python对象编程方式来进行数据库的查询、创建、更新和删除操作,极大地提高了开发效率和代码的可读性。

3.1.1 如何使用Python对象编程方式来进行数据库的查询、创建、更新和删除操作?

  • 模型定义
from django.db import models

class Blog(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')
  • 创建新的博客文章
new_blog = Blog(title='My first blog post', content='Hello Django', pub_date=timezone.now())
new_blog.save()

4、Django难点问题

防范SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)

5、Django 示例

准备工作

安装git 和 tortisegit
https://blog.youkuaiyun.com/huanfeifei/article/details/113102930
安装anaconda

安装pycharm,注册高校版本

5.1 第一步构建Django项目

- django-admin startproject blog
在这里插入图片描述
在这里插入图片描述
WSGI (Web Server Gateway Interface)提供了一个标准的接口,让Web服务器和Python应用可以通信,ASGI (Asynchronous Server Gateway Interface)可以实现异步支持,如果项目需求包括大量的异步处理和实时数据交互,应当考虑使用ASGI。对于标准的Web应用,WSGI依然是一个稳健的选择。

5.2 启动程序

  • 启动
    python manage.py runserver
  • 关闭
    服务器运行时,我们按Ctrl + C 即可关闭服务

5.3 创建应用

.一个项目中可以包含多个应用,而一个应用也可以在多个项目中使用.在Django中,每个应用都是一个包,并且遵循相同的约定
Django创建一个应用非常简单:
python manage.py startapp 应用名
python manage.py startapp article

在这里插入图片描述

5.4 应用配置生效

在这里插入图片描述

5.5 支持中文配置

在这里插入图片描述

6、实验问题

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值