zoukankan      html  css  js  c++  java
  • flask_flsh_1

    调试模式:
    app.run(debug=True)进入调试模式,在网页端可看到详细错误信息,不需要重复运行app
    路由:
    除了在函数上方用装饰器之外@route('/hello'),还可以通过app.add_url_route("/hello",view_func=hello)#hello代表视图函数
    一般使用装饰器方法,如果要做基于类的视图的话(即插视图)使用第二种路由。

    路由唯一原则:
    /hello 和 /hello/的区别在于,如果用户输入错误,也不进行报错,也可使得seo更容易。
    /hello/的好处在于,输入两种模式兼不报错,使用了重定向原理。
    重定向:
    当flask接收到请求之后,返回给前端一个301的location,并返回重定向之后的网址,flask
    进行重新访问原值。


    指定host和port:
    0.0.0.0代表可以被任意网关访问,port指定端口号,默认端口号5000
    app.run(host="0.0.0.0",port=81)

    配置文件:
    为了使得生产环境和开发环境中代码的一致性,则需要写一份配置文件,使得代码一致,并且更改起来容易。

    新建一个配置文件config.py,配置文件中的常规来说要大写,可以把其看做一个常量。

    DEBUG = True

    导入配置文件:
    from config import DEBUG
    app.config.from_object('config')#需要接收一个模块的路径

    使用配置文件:
    app.run(debug=app.config['DEBUG'])


    为什么用config.from_object('')导入配置文件时不能使用小写,因为flask不认,所以自动忽略了。


    真正理解if_name的作用
    fi __name__=='__main__':
    app.run()
    如果在生产环境下,使用的是nginx+uwsgi服务器,uwsgi会自动加载app.py模块,
    如果没有if就会再次加载

    Respone

    在flask中,return会返回很多的数据,比如状态码,200,404,content-type http headers
    默认content-type:text/html 会自动处理为html形式
    实则是返回一个Response对象。

    import flask make_responses

    @app.route('/')
    def hello():
    headers = {
    'content-type' = 'text/plain' #普通文本
    'location' = 'http://www.bing.com'#重定向

    }
    response = make_response("<html><html>",301)
    response.headers = headers#赋值给response
    return response

    如果调用API时,需要返回json格式内容,则‘content-type’ = application/json告诉客户端返回json格式的内容。


    另一种返回response的方法:
    return <html><html>,301,headers
    同样可以实现返回response的效果

  • 相关阅读:
    2019.6.20刷题统计
    36 线程 队列 守护线程 互斥锁 死锁 可重入锁 信号量
    35 守护进程 互斥锁 IPC 共享内存 的方式 生产者消费者模型
    34 进程 pid ppid 并发与并行,阻塞与非阻塞 join函数 process对象 孤儿进程与僵尸进程
    33 udp 域名 进程
    32 粘包 文件传输
    31 socket客户端. 服务器 异常 语法
    30 网络编程
    29 元类 异常
    26 封装 反射 常用内置函数
  • 原文地址:https://www.cnblogs.com/wxzbk/p/10508271.html
Copyright © 2011-2022 走看看