flask框架快速应用

flask框架快速应用

最近安排了新任务,原先用django框架,现在用的flask框架搭的小应用,短小精悍,趁此机会,结合文档学习一波。

测试版本

python 2.7.9
flask                         1.1.2
flask_httpauth                4.2.0
flask_restful                 0.3.8
requests                      2.18.4

1.简单用例

用flask框架结合类视图的简单web server如下:

from flask import Flask
from flask_restful import Api,Resource

app = Flask(__name__)
api = Api(app) # Api绑定app

class HelloWorld(Resource): # 继承自 flask_restful.Resource类
    def get(self):
        return {'hello': 'world'} # 内部自动将python类型转换

api.add_resource(HelloWorld, '/') # 注册路由和对应类视图

if __name__ == '__main__':
    app.run(debug=True) # debug模式,默认ip/port 127.0.0.1:5000,endpoint默认
注意事项:
1.endpoint是用来给url_for 反转url的时候指定的。如果不写endpoint,那么将会使用视图的名字的小写来作为endpoint.

2.add_resource的第二个参数是访问这个视图函数的url,这个url可以跟之前的route一样,可以传递参数。并且还有一点不同的是,这个方法可以传递多个url来指定这个视图函数

3.如果你想返回json数据,那么就使用flask_restful,如果你是想渲染模板,那么还是采用之前的方式,就是'app.route'的方式

# 转载: https://www.cnblogs.com/fengzi759/p/12152553.html

以下是server console信息

* Serving Flask app "__main__" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 212-200-978

其他

flask_restful插件提供了类似WTForms来验证提交的数据是否合法的包,叫做reqparse.以下是基本用法:

parser = reqparse.RequestParser()
parser.add_argument("username",type = str,help="请输入用户名",required= True)
args = parser.parse_args()
add_argument可以指定这个字段的名字,这个字段的数据类型等。以下将对这个方法的一些参数做详细讲解

      1.default: 默认值,如果这个参数没有值,那么将使用这个参数指定的值

      2.required:是否必须。默认为False,如果设置为True,那么这个参数就必须提交上来

      3.type:这个参数的数据类型,如果指定,那么将使用指定的数据类型来强制转换提交上来的值

      4.choices: 选项。提交上来的值只有满足这个选项中的值才符号验证通过,否则验证不通过,传的是一个列表

      5.help:错误信息。如果验证失败后,将会使用这个参数指定的值作为错误信息

      6.trim: 是否要去掉前后的空格

其中的type,可以使用python自带的一些数据类型,也可以使用flask_restful.inputs下的一些特定的数据类型来强制转换。比如一些常用的:
      1.url: 会判断这个参数的值是否是一个url,如果不是,那么就会抛出异常
    
      2.regex: 正则表达式

      3.date: 将这个字符串转换为 datetime.date数据类型。如果转换不成功,则会抛出一个异常


传送门:

https://www.w3cschool.cn/flask/
https://dormousehole.readthedocs.io/en/latest/
https://www.cnblogs.com/fengzi759/p/12152553.html
https://www.cnblogs.com/jackadam/p/9208439.html

posted on 2020-12-24 14:48  进击的davis  阅读(171)  评论(0编辑  收藏  举报

导航