Flask 视图

CBV

from flask import Flask, views
from functools import wraps

app = Flask(__name__)

class IndexView(views.View):
    methods = ['GET']  # 支持GET请求
    decorators = [wapper, ]  # 给这些方法加装饰器,可以加多个装饰器

    def dispatch_request(self):
        print('Index')
        return 'Index!'


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

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

请求与响应

from flask import Flask, render_template, redirect, request

app = Flask(__name__)


@app.route('/login', methods=['GET', 'POST'])
def login():
    # 请求相关信息
    # request.method
    # request.args
    # request.form
    # request.values
    # request.cookies
    # request.headers
    # request.path
    # request.files
    # obj = request.files['the_file_name']
    # obj.save('/var/www/uploads/' + secure_filename(f.filename))

    # request.full_path
    # request.script_root
    # request.url
    # request.base_url
    # request.url_root
    # request.host_url
    # request.host



    # 响应相关信息
    # return "字符串"
    # return render_template('html模板路径',**{})
    # return redirect('/index.html')

    # response = make_response(render_template('index.html'))
    # response是flask.wrappers.Response类型
    # response.set_cookie('key', 'value')
    # response.headers['X-Something'] = 'A value'
    # response.delete_cookie('key')
    # return response

    return "内容"


if __name__ == '__main__':
    app.run()
posted @ 2023-09-14 10:20  沈忻凯  阅读(17)  评论(0)    收藏  举报