flask之视图

flask的CBV模式

     def auth(func):
            def inner(*args, **kwargs):
                result = func(*args, **kwargs)
                return result
            return inner

     class IndexView(views.MethodView):
            # methods = [‘POST‘]  #只允许POST请求访问
            decorators = [auth,]  #如果想给所有的get,post请求加装饰器,就可以这样来写,也可以单个指定

            def get(self):   #如果是get请求需要执行的代码
                v = url_for(‘index‘)
                print(v)
                return "GET"

            def post(self):  #如果是post请求执行的代码
                return "POST"

     app.add_url_rule(‘/index‘, view_func=IndexView.as_view(name=‘index‘))  #name指定的是别名,会当做endpoint使用

      if __name__ == ‘__main__‘:
            app.run()

flask中的FBV模式

 方式一:
    @app.route(‘/index‘,endpoint=‘xx‘)
    def index(nid):
        url_for(‘xx‘,nid=123)
        return "Index"

    方式二:
    def index(nid):
        url_for(‘xx‘,nid=123)
        return "Index"

    app.add_url_rule(‘/index‘,index)

随便练习的CBV和FBV

from flask import Flask,render_template,redirect,views
app = Flask(__name__)
import functools

def wapper(func):
    @functools.wraps(func)
    def inner(*args,**kwargs):
        print(‘before‘)
        return func(*args,**kwargs)
    return inner

@app.route(‘/xxxx‘,methods=[‘GET‘,‘POST‘])
@wapper
def index():
    return "Index"

# class IndexView(views.View):
#     methods = [‘GET‘]
#     decorators = [wapper, ]
#
#     def dispatch_request(self):
#         print(‘Index‘)
#         return ‘Index!‘
#
# app.add_url_rule(‘/index‘, view_func=IndexView.as_view(name=‘index1‘))  # name=endpoint

class IndexView(views.MethodView):
    methods = [‘GET‘]
    decorators = [wapper, ]

    def get(self):
        return ‘Index.GET‘

    def post(self):
        return ‘Index.POST‘

app.add_url_rule(‘/index‘, view_func=IndexView.as_view(name=‘index2‘))  # name=endpoint

if __name__ == ‘__main__‘:
    app.run()

原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8975371.html

时间: 2024-10-09 04:09:12

flask之视图的相关文章

Flask 给视图函数增加装饰器

在@app.route的情况下增加装饰器的写法: 1 from flask import Flask,request,render_template,redirect,session,url_for,views 2 from flask import render_template 3 4 app = Flask(__name__) #实例化flask对象 5 app.debug = True #能够随时更改自动重启,不加的话每次更改代码需要手动重启 6 app.config['SECRET_K

Flask路由+视图补充

一.路由设置的两种方法 1.装饰器 @app.route('/index/') def index(): return 'Hello World!' 2.源码 route->decorator->add_url_rule(rule, endpoint, f, **options) def index(): return 'Hello World!' app.add_url_rule('/index/', None, index) 注意:endpoint的值不能一致 二.参数 rule URL规

Flask之视图,会话、模板

一.视图 1.route (1)路由: 将从客户端发送过来的请求分发到指定函数上 (2)语法: @app.route(‘/rule/’) def hello(): return ‘Hello World!’ @app.route(‘/rule/<id>/’) def hello(id): return ‘Hello{}’.format(id) (3)route规则 写法 <converter:variable_name> converter类型 string 接收任何没有斜杠(‘/

网站后端_Python+Flask.0010.FLASK即插视图之自定义视图类及视图修饰?

即插视图; 说明: FLASK的视图灵感来自于DJANGO的基于类而非基于函数的通用视图,主要目的是为了解决多个视图函数之间已经实现的部分,通过类继承的方式继承到其它视图,总之为了一点,就是少写代码,然后通过add_url_rule让我们定义的视图类支持动态插入,也就是所谓的即插视图 深入视图: # 转换前: #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # 51CTOBG: h

flask路由和视图和cookie

什么是路由 """ 客户端(例如web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例. 程序实例需要知道对每个URL请求运行那些代码,所以保存了一个URL到Python函数的映射关系. 处理URL和函数之间关系的程序称之为路由. """ 看个简单完整的的例子 #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask app = Flas

Flask Restful Small Demo

参考: http://www.pythondoc.com/flask-restful/first.html 什么是Rest Client-Server:服务器端与客户端分离. Stateless(无状态):每次客户端请求必需包含完整的信息,换句话说,每一次请求都是独立的. Cacheable(可缓存):服务器端必需指定哪些请求是可以缓存的. Layered System(分层结构):服务器端与客户端通讯必需标准化,服务器的变更并不会影响客户端. Uniform Interface(统一接口):客

Flask Web 开发学习稿(一)

好久没有更新过了,把这些日子搞的东西先放一波出来 这个学习笔记未必会包含全部章节,有时会将两个章节进行合并 第一章 安装 1.1 使用虚拟环境 虚拟环境是 Python 解释器的一个私有副本,可以安装私有包而不影响全局 Python 解释器 Python 3.3 通过 venv 模块原生支持虚拟环境,命令为 pyvenv .不过在 Python 3.3 中使用 pyvenv 命令创建的虚拟环境不包含 pip ,在 Python 3.4 中改进了这一缺陷. 我这边使用 Python 3.5.0 和

Flask从入门到精通之flask程序入门

初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代码构建 from flask import Flask app = FLask(__name__) Flask类的构造函数只有一个必须指定的参数,即程序主模块或则包的名称..在大多数程序中,Python 的__name__ 变量就是所需的值.将构造函数的name 参数传给Flask 程序,这一点可能

Flask之基于route装饰器的路由系统(源码阅读解析)

一 路由系统 1. 在flask中配置URL和视图函数的路由时,首先需要在main.py中实例化一个app对象: 1 from flask import Flask, render_template 2 3 app = Flask(__name__) 2. 然后通过app实例的route方法装饰视图函数,实现路由的配置: 1 @app.route('/') 2 def hello_world(): 3 return 'Hellow World!' 3. 所有这里需要关注在Flask类里定义的ro