创建hello.py文件
from flask import Flask app = Flask(__name__)@app.route('/')def gello_world(): return 'Hello World'if __name__ == '__main__': app.run()
运行:python hello.py
初始化
from flask import Flask app = Flask(__name__)
Flask类构造函数唯一需要的参数就是应用程序的主模块或包。对于大多数应用程序,Python的name变量就是那个正确的、你需要传递的值。Flask使用这个参数来确定应用程序的根目录,这样以后可以相对这个路径来找到资源文件。
路由
@app.route('/')
客户端例如web浏览器发送 请求 给web服务,进而将它们发送给Flask应用程序实例。应用程序实例需要知道对于各个URL请求需要运行哪些代码,所以它给Python函数建立了一个URLs映射。这些在URL和函数之间建立联系的操作被称之为 路由 。
在Flask应程序中定义路由的最便捷的方式是通过显示定义在应用程序实例之上的app.route装饰器,注册被装饰的函数来作为一个 路由。
视图函数
在上一个示例给应用程序的根URL注册gello_world()函数作为事件的处理程序。如果这个应用程序被部署在服务器上并绑定了 www.example.com 域名,然后在你的浏览器地址栏中输入 http://www.example.com 将触发gello_world()来运行服务。客户端接收到的这个函数的返回值被称为 响应 。如果客户端是web浏览器,响应则是显示给用户的文档。
类似于gello_world()的函数被称作 视图函数 。
动态名称组件路由
你的Facebook个人信息页的URL是 http://www.facebook.com/ ,所以你的用户名是它的一部分。Flask在路由装饰器中使用特殊的语法支持这些类型的URLs。下面的示例定义了一个拥有动态名称组件的路由:
@app.route('/hello/<name>')def gello_world(name): return 'Hello World %s' % name
用尖括号括起来的部分是动态的部分,所以任何URLs匹配到静态部分都将映射到这个路由。当视图函数被调用,Flask发送动态组件作为一个参数。在前面的示例的视图函数中,这个参数是用于生成一个个性的问候作为响应。
在路由中动态组件默认为字符串,但是可以定义为其他类型。例如,路由/user/int:id只匹配有一个整数在id动态段的URLs。Flask路由支持int、float
如下:
@app.route('/hello/<int:id>')def gello_stu_id(id): return 'Hello World id: %s' % id
服务启动
if __name__ == '__main__': # 修改启动的ip和端口,debug模式 # app.run(host='0.0.0.0', port=8080, debug=True) # python xxx.py runserver -h 0.0.0.0 -p 8080 -d app.run()
注意: name == 'main'在此处使用是用于确保web服务已经启动当脚本被立即执行。当脚本被另一个脚本导入,它被看做父脚本将启动不同的服务,所以app.run()调用会被跳过。
一旦服务启动,它将进入循环等待请求并为之服务。这个循环持续到应用程序停止,例如通过按下Ctrl-C。
有几个选项参数可以给app.run()配置web服务的操作模式。在开发期间,可以很方便的开启debug模式,将激活 debugger 和 reloader 。这样做是通过传递debug为True来实现的。
修改启动方式
安装插件
pip install flask-script
调整代码 manager = Manager(app=‘自定义的flask对象’)
启动的地方 manager.run()
启动命令
python hellow.py runserver -h 地址 -p 端口 -d -r
其中:-h表示地址。-p表示端口。-d表示debug模式。-r表示自动重启
作者:GHope
链接:https://www.jianshu.com/p/15d8d5a4936b
共同学习,写下你的评论
评论加载中...
作者其他优质文章