• 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的效果

  • 相关阅读:
    i5ting_doc的安装和使用
    vscode—修改默认的shell
    cookie的相关知识
    这是一段有毒的js代码,求大神解释!!!
    BFC的触发条件
    替换元素与非替换元素
    css中em的使用方法
    误操作导致ps界面中的工具栏消失
    导航栏里面的li标签和a标签的配合使用
    记录一下 elmentui 循环复选框不能选中问题
  • 原文地址:https://www.cnblogs.com/wxzbk/p/10508271.html
Copyright © 2020-2023  润新知