- 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kun1280437633/article/details/80232833
1、先来一个代码,看看flask怎么写
#coding:utf8
from flask import Flask #1.导入包
app = Flask(__name__) #2.创建应用程序对象
@app.route("/") #3.编写路由,绑定视图函数
def hello_world():
return "helloworld"
if __name__ == "__main__": #4.编写程序入口app.run("127.0.0.1",5000)
解析:
(1) 从flask模块中导入Flask 这个类
(2)__name__ :表示当前程序,是整个应用的入口,值为: __main__
(3)app.static_url_path: 表示应用程序中,静态资源的路径
(4)app.static_folder: 默认是static,也可以手动指定, 绝对路径
(5)app.templates: 用来存存储模板的, 值是:templates
(6)app.run( )中参数1表示当前应用程序运行的ip地址, 默认是:127.0.0.1,参数2表示当前应用程序运行的port端口,
默认是:5000,如果设置成0.0.0.0之后可以在其他系统中进行访问
(7)url_map:用来app中所有的视图和路由之间的映射关系,使用方式:app.url_map 返回的是一个map集合
只有被url_map包含进来的视图函数才能访问
2、通过路由装饰视图函数之后,访问关系?
(1) 一个路由装饰多个函数, 那么执行的是那个函数
答:先装饰的,优先访问
(2)多个路由装饰一个函数,通过哪个路径访问视图函数
答:所有的路径都可以访问该视图函
3、在访问视图函数的时候,如何指定访问方式 ?
答:使用methods,格式: @app.route("路径",methods=["方式1","方式2"])
常见的访问方式有 GET,POST,PUT,DELET,DISPATCH,OPTION.... #如果没有指定访问方式,默认就是GET
4、通过路由地址访问视图函数的时候如何传递参数?
答:格式: @app.route("路径/<数据类型:变量名>") 注意:路由中的参数需要传递到函数形参中
常见数据类型:(1)整数:int(2)小数: float(3)字符集(unicode):path
5、如果要限制传入到视图函数的参数个数、类型等,使用系统自带的转换器满足不了需求,怎么办?
答: 使用自定义转换器 (1)自定义类继承自BaseConverter
(2)编写__init__方法,接受两个参数,url_map,regex
(3)重写父类__init__方法,传递url_map,初始化父类空间
(4)将regex规则赋值给子类
(5)自定义使用to_python方法可以对参数进行过滤处理
6、 在运行程序的时候,如何指定调试模式,及其好处?
答:设置app.run(debug = True) # 如果不设置默认是False,好处
(1)改完代码之后不用重新启动,保存即可自动部署
(2)一旦服务器内部产生异常,能够在浏览器产生友好提示
7、 redirect(重定向)
当访问一个资源的时候,如果没有,会跳转另外的页面,
特点:两次请求
使用格式:return redirect("路径")
8、通过服务器返回 json 字符串到浏览器页面中
格式: (1)dict --> json jsonstr = json.dumps(dict)
(2)json --> dict dict = json.loads(jsonstr)
9、抛出异常
abort(代号/对象): 用来主动跑出异常代号,或者异常对象
errhandler(代号/异常类): 配合abort使用,提示友好界面的错误信息
使用格式: @app.errorhandler (代号/异常类) , 装饰自定义的处理函数
10、当浏览器访问服务器的时候会自动产生一个request对象
包含了浏览的:
(1) data:除了表单数据,都能获取到,主要用来获取xml,json..
(2) args:用来获取到参数, 比如: www.baidu.com?name=zhangsan&age=13
(3) method:获取请求的方式
(4) url:获取请求url
(5) files:可以获取文件