washing 2020-04-26
参考:https://blog.csdn.net/qq_38664371/article/details/80352102
https://blog.csdn.net/weixin_30553065/article/details/96045980?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3
0x00
关于Web框架是我第一次接触,比较生疏,下面来简单记录一下flask框架的基础知识.
0x01 最简单的Flask应用
from flask import Flask app = Flask(__name__) @app.route(‘/‘) def hello_world(): return "hello world!" if __name__ == ‘__main__‘: app.run()
代码作用:
1.首先,我们导入了 Flask 类。这个类的实例将会是我们的 WSGI 应用程序。
2.接下来,我们创建一个该类的实例,第一个参数是应用模块或者包的名称。 如果你使用单一的模块(如本例),你应该使用 __name__ ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 ‘__main__‘ 或实际的导入名)。这是必须的,这样 Flask 才知道到哪去找模板、静态文件等等。详情见 Flask的文档。
3.然后,我们使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。
4.这个函数的名字也在生成 URL 时被特定的函数采用,这个函数返回我们想要显示在用户浏览器中的信息。
5.最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if __name__ ==‘__main__‘: 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。
0x02 路由(装饰器)
路由:@app.route()[app是Flask的实例化对象,可以改变].
作用:flask通过装饰器来识别用户需要访问的网址路径,并在对应的路径做出相应的操作.例如上述代码,当访问url为"xxxxxxxxx/"时,装饰器会触发[hello_world()]函数,从而在访问该url时得到"hello world".
举例:
@app.route(‘/‘) def index(): return ‘This is index page‘ //当访问"/"时显示"This is index page" @app.route(‘/hello‘) def hello(): return ‘Hello World‘//当访问"/hello"时显示"Hello World"
总结:route()装饰器就是把一个函数绑定在一个url上,不仅如此,还可以构造含有动态部分的url,也可以在一个函数上附着多个规则.
0x03 变量规则
给url添加变量部分,可以把这些特殊的字段标记为<var_name>(括号中自定),这个部分将会作为参数传入到下面的函数,并支持使用<converter:var_name>来进行转换.
举例:
@app.route(‘/hello/<user_name>‘) def show user(user_name): return ‘User: %s‘ %user_name @app.route(‘/index/<int:id>‘) def show ID(id): return ‘ID:%d‘ %id
页面: