Flask web开发(2):程序的基本结构
admin
2023-07-31 00:46:28
0

本系列笔记是我阅读Miguel Grinberg的《Flask Web Development》的笔记,标题与书本同步。希望通过记录技术笔记的方式促进自己对知识的理解。

本篇对应书本第二章:程序的基本结构。

初始化

123 from flask import Flask #导入Flask模块app = Flask(__name__) #创建Flask类的实例 

注:对于Flask开发者来说,传给Flask应用程序构造函数的name参数是比较容易弄混淆的。Flask使用这个参数来确定应用程序的根目录,这样以后可以相对这个路径来找到资源文件。

路由和视图函数

注册新的路由

在Flask应用中,路由是指用户请求的URL与视图函数之间的映射。
Flask框架 根据HTTP请求的URL在路由表中匹配预定义的URL规则,找到对应的视图函数, 并将视图函数的执行结果返回WSGI服务器。

匹配动态URL

route装饰器 :可以使用Flask应用实例的route装饰器将一个URL规则绑定到一个视图函数上。
下面程序中route装饰器将根目录绑定在index视图上。

123 @app.route(\’/\’)def index():    return \'

Hello World!

\’

URL变量类型过滤

123456789 @app.route(\’/user/\’)def user(name):    return \'

Hello, %s

\’
% name 类似:int    接受整数(float接受浮点数)@app.route(\’/post/\’)path转换器允许规则匹配包含/的字符串。@app.route(\’/file/\’)

启动服务器

1234567891011 if __name__ == \’__main__\’:    app.run(debug=True)    # 模块是对象,并且所有的模块都有一个内置属性 __name__。# 一个模块的 __name__ 的值取决于您如何应用模块。# 如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。# 但是您也可以像一个标准的程序样直接运行模块,# 在这种情况下, __name__ 的值将是一个特别缺省\”__main__\”。 # debug=True 调试模式开启 

一个完整的程序

hello.py: 一个完整的Flask程序

123456789 from flask import Flaskapp = Flask(__name__) @app.route(\’/\’)def index():    return \'

Hello World!

\’
 if __name__ == \’__main__\’:    app.run(debug=True)

运行结果如下:

hello.py: 包含动态路由的Flask程序

123456789101112131415 from flask import Flaskapp = Flask(__name__) @app.route(\’/\’)def index():    return \'

Hello World!

\’
    @app.route(\’/user/\’)def user(name):    return \'

Hello,%s

\’
% name    if __name__ == \’__main__\’:    app.run(debug=True)    # 定义了动态路由/user/

运行结果如下:

请求-响应循环

程序和请求上下文

请求对象封装了客户端发送的HTTP请求。
将请求对象作为参数传入视图函数,视图函数即可访问请求对象。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...