本文共 1422 字,大约阅读时间需要 4 分钟。
—————————————————————————前言——————————————————————————
Flask被设计为可扩展形式, 只提供了web程序必备的核心功能,故没有提供一些重要功能, 如数据库和用户认证。
这样的好处是开发者可以只有自由选择合适的包。
社区人员开发了大量不同用途的扩展, 本节就来讲解如何把扩展整合到程序中。
———————————————————————————————————————————————————
接下来我们将在hello.py中添加一个扩展,
还记得那行代码吗? app.run(debug=True) #启动服务器进入轮询 Flask的开发Web服务器支持很多启动选项设置, 但只能在脚本中作为参数传给app.run()函数, 这种方式并不灵活方便。传递设置选项的理想方式是使用命令行参数。
一.Flask-Script是一个Flask扩展, 为Flask程序添加了一个命令行解析器, 下面我们来介绍如何把该扩展整合到程序中:
1.使用pip安装Flask-Script扩展:
2. 修改hello.py:
from flask.ext.script import Managermanager = Manager(app)#...if __name__ == '__main__': manager.run()专为Flask开发的扩展都在flask.ext包里面。
这个扩展的初始化方法也适用于其它很多扩展: 把程序实例作为参数传给构造函数, 初始化主类的实例。 该例中服务器由manager.run()启动, 启动以后就能解析命令行了。
3. 第二点只是理论讲解, 实际操作中我们只需要从版本库中签出2c版本就可以:
二.经过以上三步扩展就整合到程序里了, 下面介绍扩展用法:
1. 运行hello.py:
shell 命令: 在程序上下文中启动Python shell会话。 可是使用这个会话运行维护任务, 调试异常。
举例:我们来测试一下上节查看url映射:
我们可以看到, 和上节比较, 我们没有导入app, 也没有推送上下文。
runserver命令:启动Web服务器。
&python hello.py runserver #以调试模式启动服务器
查看更多选项:
&python hello.py runserver --help
--host参数是个很有用的选项, 它告诉web服务器在哪个网络接口上监听来自客户端的连接。
1)默认情况下, Flask开发Web服务器监听localhost上的连接, 所以只接受来自服务器所在计算机发起的连接。
2)下述命令让Web服务器监听公共网络接口上的连接, 允许同网络中的其它计算机连接服务器:
现在, Web服务器可使用http://a.b.c.d:5000/网络中的任意一台电脑进行访问, 其中a.b.c.d是服务器所在计算机的外网ip地址。
在这里我有个问题, 请知道的朋友给我留言:
在我执行python hello.py runserver --host 0.0.0.0后, 按书上的说法是同网络中的其他计算机也可以连接服务器, 但是我只有在虚拟机中的浏览器地址栏输入127.0.0.1:5000的时候有响应, 在我笔记本上和手机上都没有响应, 但是连接的网络都是我家wifi,这不叫同网络吗? 请帮我解答一下谢谢。