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()