views.py def session_auth(fn): def inner(request,*args,**kwargs): status = request.session.get('session_login') if status: ret = fn(request) return ret else: return redirect(reverse('login')) return inner @session_auth def index(request): username =…
前端很好的session 的例子 (随机验证码登陆) https://github.com/Endless-Clould/qianduan 参考: 验证码登录 https://www.cnblogs.com/Michael--chen/p/10569162.html 视图层: 路由层: 模板层: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">…
参考代码如下: 1.用户登录程序流程控制代码: # 编辑者:闫龙 if __name__ == '__main__': import UserLoginFuncation LoclCount=[]; while True: UserName = input("用户名:>>") if(UserLoginFuncation.CheckUserLock(UserName)): print("用户",UserName,"已被锁定") cont…
from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login, logout #用户名有效性验证 登入和登出 from django.contrib.auth.decorators import login_required # 验证用户是否登录 def acc_login(request): if request.method == "POST": u…
写在前面 本系列目的:希望可以通过一篇文章,不望鞭辟入里,但求在工程应用中得心应手. 装饰器模式是鼎鼎大名的23种设计模式之一.装饰器模式可以在不改变原有代码结构的情况下,扩展代码功能. Python将装饰器作为Python的一种特性,内置了对装饰器的支持,使得Python使用者在使用装饰器时更加方便,合理使用装饰器,可以使Python代码极具美感. 由于设计模式是一套被反复使用的代码设计经验,并不是编码必备的技能.所以在编码过程中,完全放弃使用装饰器.但是如果你不写出pythonic风格的,没…
Django基础七之CBV装饰器和中间件 目录 Django基础七之CBV装饰器和中间件 1. CBV加装饰器 2. Django中间件 2.1 Django中间件介绍 2.2 自定义中间件 2.2.1 自定义中间件 2.2.2 自定义中间件总结 2.2.3 其他中间件函数 2.3 新版本中间件写法 3.Csrf中间件 1. CBV加装饰器 CBV加装饰器有三种方法, 案例:要求登录(不管get请求还是post请求)后才可以访问 HTML代码 index.html <!DOCTYPE html>…
一.Django路由系统(url) 1.什么是路由系统 路由系统的本质是URL模式以及要为该URL模式调用的视图函数之间的一个映射表即不同的url路径对应的不同的函数,该路由系统是存放在全局配置文件urls.py中,之所以叫路由系统是为了好听 2.路由系统格式: urlpatterns = [url(正则表达式, views视图函数,参数,别名),] 注释:1.正则表达式就是Python中提及到的正则表达式,匹配的是url下的路径    2.视图函数就是url路径对应的函数    3.参数就是需…
在python中,装饰器.生成器和迭代器是特别重要的高级函数   https://www.cnblogs.com/yuanchenqi/articles/5830025.html 装饰器 1.如果说装饰器是取经路上的大妖怪,想要干掉它就必须拿到三样法宝 法宝一:作用域(LEGB) 法宝二:高阶函数:(把函数名看作变量,可以作为传输参数,也可以作为返回值) (在python的世界里,函数和我们之前的[1,2,3],'abc',8等一样都是对象, 而且函数是最高级的对象(对象是类的实例化,可以调用相…
一.带参数的装饰器,函数的有用信息 def func1(): '''此函数的功能是完成的登陆的功能 return: 返回值是登陆成功与否(true,false) ''' print(333) func1() print(func1.__name__)#func1 print(func1.__doc__)#此函数的功能是完成的登陆的功能,return: 返回值是登陆成功与否 打印函数名 from functools import wraps def wrapper(f): @wraps(f) de…
DTL语言,即django template language 第一次使用时,需要修改项目的setting.py文件,将其中TEMPLATES中的DIRS修改为os.path.join(BASE_DIR, 'templates'),BASE_DIR在setting.py文件中定义为BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))),表示项目所在的文件夹 使用render时,系统会默认从setting.py文…