当前位置: 首页 > news >正文

iis怎么创建网站企业软件项目管理系统

iis怎么创建网站,企业软件项目管理系统,广州建设网站首页,象58同城网站建设需要多少钱flask中也有类似与django中的中间件,只不过是另一种写法,但是他们的作用是一样的,下面我们就一一介绍: 1.before_request 作用 : before_request 相当于 django 中的 process_request,每一个请求在被处理前都会经…

flask中也有类似与django中的中间件,只不过是另一种写法,但是他们的作用是一样的,下面我们就一一介绍:

1.before_request   

  • 作用 : before_request 相当于 django 中的 process_request,每一个请求在被处理前都会经过这个方法
  • 应用 : 用户登录认证(这样避免了每一个视图函数都加用户登录认证的装饰器)
  • 注意 : before_request 的返回值为 None 才会往后走, 否则直接返回你的返回值,如果定义了after_request那么会接着它执行, 最终本次请求响应结束
from flask import Flask, request, render_template, session, url_for, redirect, flash, get_flashed_messages
from markupsafe import Markupapp = Flask(__name__)
app.debug = Trueapp.secret_key = 'the_secret_key'@app.before_request
def process_request(*args, **kwargs):# 判断访问的是不是登入路径,是的话返回None继续往后走if request.path == '/login':return Noneelse:# 不是的话判断是否携带用户信息(判断是否登入状态)username = session.get('username')print('username', username)if username:return Noneelse:# 如果没有,则重定向到登入界面return redirect('/login')@app.route('/login')
def login():username = request.args['username']print(username)if username == 'shawn':session['username'] = usernamereturn redirect('/index')else:return render_template('login.html')@app.route('/index')
def index():return render_template('index.html')if __name__ == '__main__':app.run()

 2. after_request

  • 作用 : 类比django中间件中的process_response,如果请求没有出现异常的情况下, 会在请求返回return之前执行. 但是如果有多个顺序是从下往上执行.

  • 与Django中process_response的区别

Django中当请求返回return后, 会从当前位置结束接着从当前位置response出去Flask中的after_request请求返回return之后, 后面的response也会一个个走完
@app.after_request  # 后执行
def process_response1(response):print('process_response1')return response@app.after_request  # 先执行
def process_response2(response):print('process_response2')return response

3.before_first_request

  • 作用 : 顾名思义, 项目启动第一次请求时触发执行
  • 应用 : 项目初始化用来保证以后项目只要不重启就不再继续执行
@app.teardown_request
def ter(e):print("不管什么情况,都会触发,即便遇到了异常")

4. teardown_request

  • 效果 : 不管什么情况, 都会触发, 即便遇到了异常, 并且返回return没有任何效果, 无法控制返回结果
  • 应用 : 记录日志
@app.teardown_request
def ter(e):print("不管什么情况,都会触发,即便遇到了异常")

5.errorhandler

  • 作用: 绑定错误的状态码进而可以捕获服务器的错误, 并返回对应的错误页面
@app.errorhandler(404)
def error_404(arg):return "404页面找不到了..."

6.template_global

  • 作用: 全局的标签, 在任意的html页面中就可以直接使用, 不需要在render_template中传递参数以后才能使用
@app.template_global()
def gl(a1, a2):return a1 + a2# html 文件中使用
{{ gl(1,2) }}

 7.template_filter

  • 作用: 全局的过滤器, 在任意的html页面中就可以直接使用, 不需要在render_template中传递参数以后才能使用
@app.template_filter()
def db(a1, a2, a3):return a1 + a2 + a3# html 文件中使用,相比较Django的过滤器最多只能传两个参数,这里可以传多个
# 1传给a1,2-->a2,3-->a3
{{ 1|db(2,3) }}

详细:🍖Flask请求扩展及中间件 - 给你骨质唱疏松 - 博客园 (cnblogs.com)

http://www.yayakq.cn/news/344444/

相关文章:

  • 外贸网站导航栏建设技巧怎么编辑网站内容
  • 网站建设属于高新技术收入吗注册城乡规划师一年能挂多少钱
  • 网站建设资料总结网页图片自动轮换
  • 网站建设引领者Wordpress 报表的插件
  • 网站有免费的域名和空间么乌市建设工程质量监督站网站
  • 网站开发项目经理可免费注册的网站
  • 什么是展示型网站建设阿里快速建站
  • 做网站编辑有什么发展wordpress详细介绍
  • 制作系部网站首页购物网站开发的业务需求分析
  • 做网站网页兼容性WordPress句子主题
  • 外贸工厂 网站建设宁夏自治区住房城乡建设厅网站
  • 传媒公司 网站开发软件开发和网站建设的区别
  • 成都网站建设有名的公司上海网站jianshe
  • 公司网站开发联系方式东城精锐传媒专注于各类网站建设
  • 免费永久个人网站塘下网站建设公司
  • 网站如何做微信支付宝西安cms模板建站
  • 福建省住房和城乡建设局网站汕头百度网络推广
  • 做网站用买服务器码阳城seo排名
  • 网站建设中+网页代码中国采购网
  • 银川建网站佛山标书设计制作
  • 国外html5做网站物业公司排名2020最新排名
  • 外贸网站怎么做效果好wordpress 收录少
  • 烟台网站建设地址网页设计代码动漫
  • 网站建设+设计那种连接线厂家承德网站建设开发
  • 潍坊网站建设怎样保定市做网站的电话
  • 企业网站软件开发中国10大建筑公司
  • 平台网站建设需要什么技术网站建设规划范文
  • 企业网站建设设计服务html的所有代码大全
  • 一个网站里面只放一个图片怎么做的网站微信建设运营经验分享
  • 我的世界做壁纸的网站制作图片的软件ppt