Flask——应用的基本结构(二)

2020年03月29日 09:23:21   [来源:互联网]   [阅读:-]
字体:【

Web开发服务器

Flask应用自带Web开发服务器,通过 falsk run 命令启动,执行方式:

  • 确定虚拟环境已激活,并且安装了Flask
  • 输入命令 set FLASK_APP=hello.py
  • 然后输入命令 flask run

服务器启动后便开始轮询处理请求,直到Ctrl+C键停止服务;服务器运行时,可以在浏览器中输入http://localhost:5000可以看到代码中的响应,如下:

  • Flask Web开发服务器也可以通过编程的方式启动:调用 app.run() 方法。
  • 调试模式(debug模式)

    Flask应用可以在调试模式中运行,在这个模式下,开发服务器默认会加载两个工具:重载器调试器

    • 重载器,开启后Flask会监视项目中的所有源码文件,每次修改并保存源码文件后,服务器都会自动重启,让改动生效;
    • 调试器,基于Web的工具,当应用抛出未处理异常时,它会出现在浏览器中,你可以在里面审查源码,进行调试;
    • PIN码,在debug模式中,在浏览器中可以修改代码,这时候需要使用PIN输入之后才可以修改。PIN码在程序运行时会在控制台显示,8小时有效;

    调试模式默认禁用。若想启用,在执行 flask run 命令之前,设定FLASK_DEBUG=1环境变量:

    (venv) D:\Users\flasky>set FLASK_APP=hello.py
    (venv) D:\Users\flasky>set FLASK_DEBUG=1
    (venv) D:\Users\flasky>flask run

    其他几种方式设置debug模式:

  • 可以在@app.route("/")下,直接输入 app.debug=True 开启debug模式;
  • 如果使用app.run()方法启动时,需要使用 app.run(debug=True)
  • 配置文件的使用

    1.使用 app.config.from_object 的方式加载配置文件

  • 导入 import config
  • app.config.from_object(config)
  • 2.使用 app.config.from_pyfile 的方式加载配置文件

  • 不需要导入配置文件
  • app.config.from_pyfile(配置文件) 括号内必须包含文件后缀名,可以为.py .txt等文件
  • 可以传递参数 silent=True 这样在未找到文件的时候不会抛出异常
  • 命令行选项

    Flask命令支持一些选项,可以通过flask --help查看哪些选项可用;其中,最重要的就是 flask run 命令,他的作用是在Web开发服务器中运行应用,它本身也有多个参数,其中**--host** 这个参数特别有用,他告诉Web服务器在哪个网络接口监听客户端发来的连接,默认情况下Web开发服务器监听localhost上的连接,下面这个命令可以监听公共网络接口上的连接:

    (venv) D:\Users\flasky> flask run --host 0.0.0.0

    现在网络中的任何计算机都能通过http://a.b.c.d:5000来访问Web服务器。其中,a.b.c.d是运行服务器的IP地址。

    推荐阅读:小米mix系列


    相关新闻
    新闻焦点
    对于日系车而言,也许不少车友第一时间想到的丰田汽车。其作为汽车品质的代表,它旗下不少车型均被国人赋予难开坏的美誉,尤其是SUV细分市场中的普拉多[更多]
    朗逸外形比起卡罗拉思域,不说好看,但很多人可能会觉得更稳重,方正,适应性也更广。能接受他外观的人群自然也就更多,销量自然而然就变多了。上汽大众朗[更多]
    凯美瑞,被誉为日系车三雄,全球累计销量高达2000万台。这一次丰田为它改头换面,推出了2019款凯瑞美,下面我们聊一聊它吧。前脸:前脸整体看给人[更多]
    前言:C-IASI中保研碰撞试验预告:一汽奥迪自愿申请测试旗下一汽奥迪A6 L车型。试验车型为2019款 一汽奥迪A6L 40TFSI 豪华动感[更多]
    关于我们 | 联系我们 | 老版地图 | 网站地图 | 版权声明
    版权所有:青海汽车网未经授权禁止复制或建立镜像
    相关作品的原创性、文中陈述文字以及内容数据庞杂本站无法一一核实,如果您发现本网站上有侵犯您的合法权益的内容,请联系我们,本网站将立即予以删除!
    中国互联网违法和不良信息举报中心 网络警察报警岗亭