读书:《精通Django 3 Web开发》

manage.py:命令行工具,内置多种方式与项目进行交互。

asgi.py:用于启动异步通信服务

settings.py:项目的配置文件

urls.py:项目的路由设置,设置网站的具体网址内容

wsgi.py:全称为Python Web Server Gateway Interface,即Python服务器网关接口

创建应用XXX , pythonmanage.py startapp XXX

migrations:用于生成数据迁移文件,通过数据迁移文件可自动在数据库里生成相应的数据表。

apps.py:当前App的配置信息

admin.py:用于设置当前App的后台管理功能。

models.py:定义数据库的映射类,每个类可以关联一张数据表

tests.py:自动化测试的模块

views.py:视图文件,处理功能的业务逻辑

启动项目 python manage.py runserver 8001

内置的应用功能

admin:内置的后台管理系统。

auth:内置的用户认证系统。

contenttypes:记录项目中所有model元数据(Django的ORM框架)。sessions:Session会话功能,用于标识当前访问网站的用户身份,记录相关用户信息。

messages:消息提示功能。

staticfiles:查找静态资源路径。

中间件(Middleware)是一个用来处理Django请求(Request)和响应(Response)的框架级别的钩子,它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。

配置属性MIDDLEWARE的数据格式为列表类型,每个中间件的设置顺序是固定的,如果随意变更中间件很容易导致程序异常

SecurityMiddleware:内置的安全机制,保护用户与网站的通信安全。

SessionMiddleware:会话Session功能。

LocaleMiddleware:国际化和本地化功能。

CommonMiddleware:处理请求信息,规范化请求内容。

CsrfViewMiddleware:开启CSRF防护功能。

AuthenticationMiddleware:开启内置的用户认证系统。

MessageMiddleware:开启内置的信息提示功能。

XFrameOptionsMiddleware:防止恶意程序单击劫持。

静态资源的配置分别由配置属性STATIC_URL、STATICFILES_DIRS和STATIC_ROOT完成

新增数据

get_or_create方法,若存在返回数据表已有的数据信息,否则数据新增

update_or_create方法,若存在,则进行更新操作,否则在数据表里新增数据

数据显示视图、数据操作视图和日期筛选视图。

数据显示视图

RedirectView用于实现HTTP重定向,默认情况下只定义GET请求的处理方法。TemplateView是视图类的基础视图,可将数据传递给HTML模板,默认情况下只定义GET请求的处理方法。ListView是在TemplateView的基础上将数据以列表显示,通常将某个数据表的数据以列表表示。DetailView是在TemplateView的基础上将数据详细显示,通常获取数据表的单条数据。

数据操作视图是对模型进行操作,如增、删、改

FormView视图类使用内置的表单功能,通过表单实现数据验证、响应输出等功能,用于显示表单数据。CreateView实现模型的数据新增功能,通过内置的表单功能实现数据新增。UpdateView实现模型的数据修改功能,通过内置的表单功能实现数据修改。DeleteView实现模型的数据删除功能,通过内置的表单功能实现数据删除。

日期筛选视图是根据模型里的某个日期字段进行数据筛选的,然后将符合结果的数据以一定的形式显示在网页上。

Django模板引擎的解析过程

使用CSRF防护功能,首先在配置文件settings.py中设置CSRF防护功能。

表单设有隐藏控件csrfmiddlewaretoken,隐藏控件是由模板语法{% csrf_token %}生成的

取消表单的CSRF防护,那么可以在模板文件上删除{% csrf_token %},并且在对应的视图函数中添加装饰器@csrf_exempt

取消整个网站的CSRF防护,那么可以在settings.py的MIDDLEWARE注释的CSRF中间件CsrfViewMiddleware

对某些请求设置CSRF防护,那么可以在模板文件上添加模板语法{%csrf_token %},然后在对应的视图函数中添加装饰器@csrf_protect实现

创建static文件夹 python manage.py collectstatic

如果将Django设为调试模式(DEBUG=True),那么项目运行时将读取项目的pstatic文件夹的静态资源。

如果将Django设为调试模式(DEBUG=True),那么项目运行时将读取项目的pstatic文件夹的静态资源。

发表评论

邮箱地址不会被公开。 必填项已用*标注