标签:大量 ref abort nbsp web服务 简单 res ade handler
感觉自己不写点什么记录下来的话就会忘掉,虽然写点什么也可能会忘掉,但可能会更有动力看下去这样子
# -*- coding:utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route('/') #使用app.route修饰器,把修饰函数注册为路由
def index(): #index()这样的函数就叫视图函数
return '<h1>Hello World!<h1>'
#@app.route('/user/<int::id>') int;float;path:字符串不把/视作分隔符
@app.route('/user/<name>')
def user(name):
return '<h1>Hello, %s!<h1>' %name
if __name__ == '__main__':
#debug=Ture启用调试模式
app.run(debug=True) #run方法启动Flask集成的开发Web服务器
为避免大量非必要参数弄得搞乱视图函数,Flask使用上下文临时把某些对象变为全局可访问。
使用前需先激活程序上下文或请求上下文,处理完成后再删除
程序上下文:
请求上下文:
虽然不太懂除了request其他的怎么用,但是书上说后面会讲到的......
Flask使用上下文让特定的变量在一个线程中全局可访问,同时却不会干扰其他进程。
此时request被当作某线程中的全局变量:
# -*- coding:utf-8 -*-
from flask import Flask
from flask import request #引入
app = Flask(__name__)
@app.route('/')
def User_Agent():
user_agent = request.headers.get('User-Agent')
return '<p>You brower is %s</p>' %user_agent
if __name__ == '__main__':
app.run(debug=True)
都先注册一个函数:
在请求钩子函数和视图函数间一般通过上下文全局变量 g 共享数据
虽然有一点点懂,但是书上说后面会讲到的......
大多数情况下,响应是一个简单的字符串,并作为HTML页面回送客户端
若视图函数返回的响应需使用不同状态码,可以把数字代码作为第二个返回值
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
视图函数可返回 Response 对象:
make_sense() 可接受1~3个参数,并返回一个Response对象:
from flask import make_response
@app.route('/')
def index():
response = make_response('This document carries a cookie!')
response.set_cookie('answer','42')
return response
重定向 302:redirect()
from flask import redirect
@app.route('/')
def index():
return redirect('http://www.xxxx.com')
错误处理 :abort()
#如果URL中动态参数id对应的用户不存在,就返回404
from flask import abort
@app.route('/user/<id>')
def get_user(id):
user = load_user(id)
if not user:
abort(404)
return 'Hello, %s' %user,name
标签:大量 ref abort nbsp web服务 简单 res ade handler
原文地址:https://www.cnblogs.com/localhost-ha/p/12436175.html