Python Flask Web 第一课 —— 基本概念和程序的基本结构
来源:互联网 发布:叶璇金星知乎 编辑:程序博客网 时间:2024/06/10 00:12
1. 初始化
所有的 Flask 程序都必须创建一个程序实例,所谓程序实例,在 Flask 框架下就是,Flask 类的实例对象(instance)。
from flask import Flaskapp = Flask(__name__)
Web 服务器使用一种名为 Web 服务器网关接口(Web Server Gateway Interface,WSGI)的协议,把接收自客户端(client)的所有请求(request)都转交给这个对象处理。
2. 路由与视图函数
客户端(例如 web 浏览器)把请求发送给 web 服务器,web 服务器再把请求发送给 flask 程序实例。
程序实例需要知道对每个 url 请求运行哪些代码,所以需要保存一个 URL 与 Python 函数之间的映射关系。处理 URL 和函数之间的关系的程序成为路由。
@app.route('/')def index(): return '<h1>Hello World!</h1>'
而像 index() 这样的函数被称为视图函数(view function),视图函数返回的响应可以是包含 HTML 的简单字符串,也可以是复杂的表单。
如果仔细观察日常所用服务的某些 url 格式,会发现许多地址中都包含可变部分。例如 csdn 上的个人博客地址,http://blog.csdn.net/<用户名>
,用户名是地址的一部分。
Flask 也支持这种形式的 URL,
@app.route('/user/<name>')def user(name): return '<h1>Hello, %s</h1>' % name
尖括号中的内容就是动态可变部分,任何能匹配静态部分的 URL 都会映射到这个路由上,调用视图函数时,Flask 会将动态部分作为参数传入函数(注意, 尖括号中的内容必须和函数的参数名保持一致)。
路由中的动态部分默认使用字符串,不过也可以使用其他类型定义。Flask 支持在路由中使用 int、float 和 path 类型。path 类型也是字符串,但不把斜线视作分隔符,而将其当做动态片段的一部分。
3. 启动服务器
程序实例app
使用 run 方法启动 Flask 集成的开发 Web 服务器:
if __name__ == '__main__': app.run(debug=True)
服务器启动后,会进入轮询,等待并处理请求,直到程序停止,比如按下 ctrl + c 键。换句话说,程序会阻塞在这里,app.run()
后面的语句不会被执行。
- Python Flask Web 第一课 —— 基本概念和程序的基本结构
- Flask Web开发 第一部分 virtualenv & 第2章 Flask程序的基本结构
- 程序的基本结构:第一个Flask程序
- Flask学习之一——程序的基本结构
- Flask:程序的基本结构
- Flask程序的基本结构
- Flask(2)-程序的基本结构
- Flask Web Development —— 基本应用程序结构(下)
- Flask Web Development —— 基本应用程序结构(上)
- Flask Web Development —— 基本应用程序结构(下)
- Python Flask Web 第五课 —— 包含导航条的程序基模板
- Python Flask Web 第七课 —— 使用 flask-moment 本地化日期和时间
- Python Flask Web 第九课 —— flask 扩展小结
- Python Flask Web 第十课 —— flask-wtf
- python web下的服务器结构——WSGI容器、Nginx、Flask之间的关系
- 在windows创建第一个Flask框架的Python Web
- 第一部分 flask简介《Flask Web开发:基于Python的Web应用开发实战》
- flask 学习之路(二) 程序的基本结构
- VC维
- 【Android新手笔记一】编辑框edittext实现单选或多选等对话框
- iOS UI篇4—CAlayer(自定义layer)
- objective-c -- 网络数据库 - 关于微博、微信等分享
- C#—容器类控件操作
- Python Flask Web 第一课 —— 基本概念和程序的基本结构
- 常用Shell命令1
- TrueCrypt作者声称创建分支是“不可能的”
- PostgreSQL配置优化
- 关于类名后加&符号时基类引用派生类的问题
- iOS开发之集成百度地图
- delphi数据库数据显示
- Docker详解
- 再谈利用SharpShell实现Windows Shell扩展