当前位置: 首页 > news >正文

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()
       服务器启动后,会

相关文章:

  • Android 打包aar包含第三方aar 解决方案
  • 最新发布 Spring Boot 3.2.0 新特性和改进
  • 防爆智能安全帽、防爆手持终端,防爆智能矿灯守护安全,在煤矿安全生产远程可视化监管中的应用
  • 蓝桥杯day01——负二进制数相加
  • Lubuntu 23.10用户可使用LXQt 1.4桌面
  • 『亚马逊云科技产品测评』活动征文|AWS 存储产品类别及其适用场景详细说明
  • QMenu 是 Qt 框架中的一个类,用于创建和管理弹出式菜单
  • JavaEE(SpringMVC)期末复习(选择+填空+解答)
  • Jenkins 保姆级教程
  • 设计模式-迭代器模式
  • AMEYA360:村田首款1608M尺寸/100V静电容量1µF的MLCC实现商品化
  • Object.keys方法之详解
  • BTC 复兴:Ordinals 带来创新活力,BitVM 与 BitStream 相继问世
  • 1、postman的安装及使用
  • ros2不同机器通讯时IP设置
  • jetson NX部署Yolov8
  • pycharm安装PyQt5及其工具
  • python 如何调用GPT系列的api接口,实现想要的功能
  • 5. 链表
  • LeetCode(33)最小覆盖子串【滑动窗口】【困难】
  • 前四月全国铁路完成固定资产投资1947亿元,同比增长5.3%
  • 著名蒙古族音乐学者马•斯尔古愣逝世,享年86岁
  • 中非民间对话在赞比亚举行
  • 850亿元!2025年中央金融机构注资特别国债(一期)拟第一次续发行
  • 涨知识|没想到吧,体育老师强调的运动恢复方法是错的?
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生