前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐. 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 中间件 中间件介绍 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和…
1:views视图代码 # 登录验证 def login(request): # 使用ajax请求可以使用判断 # if request.is_ajax(): if request.method == 'POST': user = request.POST.get('user') pwd = request.POST.get('pwd') code = request.POST.get('code') ret = {'status': False, 'msg': None} print(code…
java注解 从 JDK 5开始,Java 增加了注解的新功能,注解其实是代码里面的特殊标记,这些标记可以在编译.类加载和运行时被读取,在不改变代码原有逻辑下,给源文件嵌入注解信息.再通过返回获取注解信息,根据不同的注解信息处理不同逻辑.其中 Java 有以下几个元Annotation: @Retention @Retention修饰 Annotation 可以保留多长时间,只包含一个 RetentionPolicy 一个成员变量. RetentionPolicy.CLASS 默认值,编译器把…
需求:对登录进行验证,用户名cy 密码123456才能登录进去:  登录进去后,将用户存在session中: 其他链接要来访问(除了登录链接),首先验证是否登录,对这个进行拦截: com.cy.model.User.java: package com.cy.model; public class User { private String userName; private String password; public String getUserName() { return userNam…
目录 一:模块导入 二:函数 三:中间件 四:MVC和MTV 五:csrf 一:模块导入 第一种:继承 这里的母版更像是一个架子,子板都是定义的内容(如果多个页面中 ,存在相同的页面:这样我们可以抽到母版中实现) 母版:layer.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</titl…
重写User模型 Django内置的User模型可能不适合某些项目,我们可能要基于内置的添加一些字段 创建users app startapp users 修改settings.py配置文件,覆盖默认的user模型 settings.py 添加以下内容 '''是app的名称,和models里的class名称(表名)''' AUTH_USER_MODEL = "users.UserProfile" 编写users app下的models.py models.py from django.…
1.定义 一个用来处理Django的请求和响应的框架级别的钩子(函数),相对比较轻量级,并且在全局上改变django的输入与输出(使用需谨慎,否则影响性能) 直白的说中间件就是帮助我们在视图函数执行之前和执行之后做一些额外操作 2.用处 用户登录 日志记录 权限管理 请求验证(post) 一般对所有请求做批量处理的时候用中间件,单独对某几个函数处理直接使用装饰器 3.用法说明 我们使用django一直就在使用中间件,打开django的setting文件,当中的MIDDLEWARE配置项 MIDD…
中间件版的登录验证需要依靠session,所以数据库中要有django_session表. urls.py # urls.py from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^index/$', views.index), url(r'^login/$', views.login, name='login'), ] views.py # views.py from django.sho…
前提:中间件版的登录验证需要依靠session,所以数据库中要有django_session表. from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/$', views.login, name='login'), url(r'^index/$',…
中间件版的登录验证需要依靠session,所以数据库中要有django_session表. urls.py from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^index/$', views.index), url(r'^login/$', views.login, name='login'), ] views.py from django.shortcuts import render,…