Flask Web开发实验一:第一个Flask项目与Flask的工作方式

目录

2.1 初始化

2.2 路由和视图函数

2.3 启动服务器

 2.4 一个完整的程序,

示例 2-1 hello.py:一个完整的 Flask 程序

 示例 2-2 hello.py:包含动态路由的 Flask 程序

2.5.1 程序和请求上下文

2.5.2 请求调度

2.5.3 请求钩子

2.5.4 响应

2.6 Flask扩展


2.1 初始化

所有 Flask 程序都必须创建一个 程序实例 Web 服务器使用一种名为 Web 服务器网关接口
Web Server Gateway Interface WSGI )的协议,把接收自客户端的所有请求都转交给这
个对象处理。程序实例是 Flask 类的对象,经常使用下述代码创建:
from flask import Flask
app = Flask(__name__)
Flask 类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序
中, Python __name__ 变量就是所需的值

2.2 路由和视图函数

客户端(例如 Web 浏览器)把 请求 发送给 Web 服务器, Web 服务器再把请求发送给 Flask
程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL
Python 函数的映射关系。处理 URL 和函数之间关系的程序称为 路由
Flask 程序中定义路由的最简便方式,是使用程序实例提供的 app.route 修饰器,把修
饰的函数注册为路由。下面的例子说明了如何使用这个修饰器声明路由:
@app.route('/')
def index():
return '<h1>Hello World!</h1>'
如果你仔细观察日常所用服务的某些 URL 格式,会发现很多地址中都包含可变部分。例
如, 你 的 Facebook 资 料 页 面 的 地 址 是 http://www.facebook.com/< your-name > , 用 户 名
your-name )是地址的一部分。 Flask 支持这种形式的 URL ,只需在 route 修饰器中使用特
殊的句法即可。下例定义的路由中就有一部分是动态名字
@app.route('/user/<name>')
def user(name):
return '<h1>Hello, % s!</h1>' % name
       尖括号中的内容就是动态部分,任何能匹配静态部分的 URL 都会映射到这个路由上。调
用视图函数时, Flask 会将动态部分作为参数传入函数。在这个视图函数中,参数用于生
成针对个人的欢迎消息。
       路由中的动态部分默认使用字符串,不过也可使用类型定义。例如,路由 /user/<int:id>
只会匹配动态片段 id 为整数的 URL Flask 支持在路由中使用 int float path 类型。
path 类型也是字符串,但不把斜线视作分隔符,而将其当作动态片段的一部分。

2.3 启动服务器

程序实例用 run 方法启动 Flask 集成的开发 Web 服务器:
if __name__ == '__main__':
app.run(debug=True)
__name__== ' __main__ ' Python 的惯常用法,在这里确保直接执行这个脚本时才启动开发
Web 服务器。如果这个脚本由其他脚本引入,程序假定父级脚本会启动不同的服务器,因
此不会执行 app.run()
       服务器启动后,会进入轮询,等待并处理请求。轮询会一直运行,直到程序停止,比如按
Ctrl-C 键。
       有一些选项参数可被 app.run() 函数接受用于设置 Web 服务器的操作模式。在开发过程中
启用调试模式会带来一些便利,比如说激活 调试器 重载程序 。要想启用调试模式,我们
可以把 debug 参数设为 True

 2.4 一个完整的程序,

示例 2-1 hello.py:一个完整的 Flask 程序

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
 return '<h1>Hello World!</h1>'
if __name__ == '__main__':
 app.run(debug=True)

要想运行这个程序,请确保激活了你之前创建的虚拟环境,并在其中安装了 Flask 。现在
打开 Web 浏览器,在地址栏中输入 http://127.0.0.1:5000/ 。图 2-1
  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值