程序的基本结构

第2章 程序的基本结构

1.所有 Flask 程序都必须创建一个程序实例。Web 服务器使用一种名为 Web 服务器网关接口(Web Server Gateway Interface,WSGI)的协议,把接收自客户端的所有请求都转交给这个对象处理。
from flask import Flask
app = Flask(name)

2.客户端把请求发给web服务器,web服务器把请求发送给Flask程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL 到Python 函数的映射关系。处理 URL 和函数之间关系的程序称为路由。把修饰的函数注册为路由。
@app.route(’/’)
def index():
return ‘

Hello World!


这样的函数称为视图函数。
此函数的返回值称为响应。

下例定义的路由中有一部分是动态名字:
@app.route(’/user/’)
def user(name):
return ‘

Hello, % s!

’ % name

3.程序实例用 run 方法启动 Flask 集成的开发 Web 服务器:
if name == ‘main’:
app.run(debug=True)
服务器启动后,会进入轮询,等待并处理请求。轮询会一直运行,直到程序停止。

启用调试模式,可以把 debug 参数设为 True 。

4.Flask 从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。请求对
象就是一个很好的例子,它封装了客户端发送的 HTTP 请求。
Flask 使用上下文临时把某些对象变为全局可访问。
from flask import request

@app.route(’/’)
def index():
user_agent = request.headers.get(‘User-Agent’)
return ‘

Your browser is % s

’ % user_agent

5.HTTP 响应中一个很重要的部分是状态码,Flask 默认设为 200,这个代码表明请求已经被成功处理。
如果视图函数返回的响应需要使用不同的状态码,那么可以把数字代码作为第二个返回值,添加到响应文本之后。
@app.route(’/’)
def index():
return ‘

Bad Request

’, 400

Flask 视图函数还可以返回 Response 对象。 make_response() 函数可接受 1 个、2 个或 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

abort 函数,用于处理错误。
from flask import abort

@app.route(’/user/’)
def get_user(id):
user = load_user(id)
if not user:
abort(404)
return ‘

Hello, % s

’ % user.name

6.Flask-Script 是一个 Flask 扩展,为 Flask 程序添加了一个命令行解析器。
from flask_script import Manager
manager = Manager(app)

if name == ‘main’:
manager.run()

shell 命令用于在程序的上下文中启动 Python shell 会话。你可以使用这个会话中运行维护
任务或测试,还可调试异常。
运行 python hello.py runserver 将以调试模式启动 Web 服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值