Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework)
,“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。
我使用的是Pycharm的专业版(学生可以免费申请一年的专业版),直接新建一个Flask项目。
在这里我不推荐继承全局站点软件包,按照上图,选择一个合适的路径
,创立一个新的Flask项目。
如上图:当创立好一个Flask项目后,他会有一些基本的文件配置。app.py是主程序,hello_world则是py文件里的函数。
其中的
“@app.route(‘/’)”是路由修饰器,/ 表示本目录。
static和templates是Flask最重要的两个文件。
当运行代码的时候,打开网站(127.0.0.1.5000),就能看到falsk产生的网页了。
如下图代码,当请求的地址为127.0.0.1/user/1的时候,根据route修饰器可正确返回‘python’。注意,前端给后端的是字符1,而不是整数1,后端需要进行变换
首先,我个人理解route是:当想浏览器发一个请求时,会携带一个url,经过验证同意后,
route会根据发送的url去服务器查找对应的url
,找到对应的页面HTML信息或数据返回,若找不到,则返回对应的响应码。
- route机制
-
根据前端返回的信息进行处理,根据route找到要返回的代码,然后返回。
-
app.route(‘/user/***’,method=[‘GET’]),其中 **可以为int类型的id。
转换器的本质是:通过正则表达式匹配路由地址
flask 系统自带的转换器有
-
自定义转换器
- flask作为轻型WEB框架,在web开发中,可能会出现限制 用户访问的规则的场景,那么这个时候,就需要过滤指定用户,所以可以使用转换器实现。
- 转换器的本质是:通过正则表达式匹配"路由"地址
- 添加转换器到默认的转换器字典中使用自定义转换器实现自定义匹配规则
转换器代码如下:
# “<>”表示提取参数
# “”表示int 转换器
# 自定义转换器
from werkzeug.routing import BaseConverter
from flask import Flask
app = Flask(__name__) # __name__是必选参数,而且为__main__
class RegexConverter(BaseConverter):
def __init__(self, url_map, regex):
# 调用父类方法,即找到RegexConverter的父类,并初始化
super(RegexConverter, self).__init__(url_map)
def to_python(self, value):
# 检验父类方法是否使用
print('使用了父类的to_python方法')
return value
# 把地址映射添加到转换器字典中
app.url_map.converters['re'] = RegexConverter
运行代码(访问127.0.0.1.5000/index/1),可见下图:
表明程序正常运行
Flask是微型框架,意味着能快速进行web开发。
今天学会了route和转换器的用法,并亲自实 *** 了代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)