目录 url路由层 路由匹配(有名分组与无名分组) 反向解析 路由分发 名称空间(了解) Django版本区别 url 路由匹配 注意事项: url方法,第一个参数是正则表达式,只要第一个参数能够匹配到内容,就会立刻停止向下匹配,并且直接执行对应的视图函数 输入url的时候会默认加斜杠,若没有加Django会做重定向,自动添加一个斜杠再次进行匹配. 关闭Django自动添加斜杠进行匹配 APPEND_SLASE = Fales / True 默认为True 自动添加斜杠. 有名分组和无名分组不可…
准备 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐. 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 中间件 中间件介绍 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和…
目录 Django 中间件 自定义中间件 - - - 大体两种方式 将中间件移除 实例 中间件加载源码阅读 总结 Django 中间件 Tips: 更新日志: 2019.01.31 更新django中间件加载源码阅读 Django中间件可看作是包裹在django处理机制的外层,Httprequest和Httpresponse都要经中间件处理,从而起到全局钩子的作用,可以达到一些目的:如过滤请求,预处理请求,响应修改等. 我理解,很多基于会话的应用系统,都可以设计中间件环节.如数据库系统.中间件可…
一.Django请求生命周期 二.路由层  urls.py url()方法 第一个参数其实就是一个正则表达式,一旦前面的正则匹配到了内容,就不会再往下继续匹配,而是直接执行对应的视图函数. django在路由匹配的时候,当你在浏览器中没有敲最后的斜杠, django会先拿着你没有敲斜杠的结果去匹配,如果没有匹配上,会让浏览器在末尾加斜杠再发一次请求,再去匹配一次,如果还是匹配不上才会报错. 如果你想取消该机制,不想做二次匹配可以在seetings配置文件中设置   APPEND_SLASH =…
目录 Django Model 模型 MODEL需要在脑子里记住的基础概念 区分清楚,必须不能混淆的 class Meta 内嵌元数据定义类 简单model创建实例 数据源配置 接着通过models在数据库中创建映射的表 Field class model表示表关系 model.objects 有关model继承 有关通过model进行curd操作 关于FileField 和 ImageField 字段类型类 还有一个UploadedFile 对象,这个对象就是form表单post上来的文件对象…
web 应用设计模式(MTV MVC): MTV: M:models 模型:负责业务数据对象与数据库对象: T:templates 模板:负责如何把数据展示给用户: V:views 视图:负责业务逻辑 MVC: M:models 模型:负责业务数据对象与数据库对象: V:views 视图:负责与用户交互的页面: C:controller:控制器 :接受用户的输入调用模型与视图 web 应用框架——Django: django 2.1文档:https://docs.djangoproject.co…
Django 常用模块导入记忆 django相关 1. urls相关操作 from django.urls import path, re_path, include from django.urls import reverse // 注意reverse 和另一个reversed区别.前者要明确导入,后者是built-in内置不用导入:两者功能也不一. 2. HttpResponse生成 from django.shortcuts import render, Httpresponse, re…
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 普通的登录 views.p…
在django中,用户发起url请求消息首先到工程的urls.py中查找是否有匹配的url路径 刚创建好的工程中urls.py只有下面几行代码: from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ] 启动服务后,用户可以在网址中输入http://127.0.0.1:8000/admin/来访问系统 如果用户需要输入http:/…
0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的视图,获取相应的数据,然后返回给客户端显示. 2.反向解析:通过一个视图的名字,再加上一些参数和值,逆向获取相应的URL. Django提供了三种不同反向解析处理方式: 1.在模板templates中,使用url标记,如:{% url %} 2.在view中,使用…