浅谈flask-1

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 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:可以获取文件

猜你喜欢

转载自blog.csdn.net/kun1280437633/article/details/80232833