码迷,mamicode.com
首页 > 编程语言 > 详细

基于Python的Flask的开发实战(第二节程序的基本结构)

时间:2016-05-16 17:25:44      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

1.初始化

所有的flask程序都必须创建一个程序实例

web服务器使用wsgi接口协议,把接收客户端的请求都转发给这个程序实例来进行处理。这个程序实例就是flask对象

from flask import Flask
app = Flask(__name__)
#__name__决定程序的根目录,以便以后能找到相对于程序根目录的资源文件位置



2.路由和视图函数

程序实例需要知道接收请求后,需要知道url请求应该运行哪些代码。所以保存了一个url和python函数的映射关系;这个映射关系就叫做路由

flask程序中路由的写法:

2.1#使用app.route装饰器,把修饰的函数注册为路由。例如

@app.route(/)
def index():
    return "<h1>Hello World</h1>"

#函数的名字不是必须写index的,只是和装饰器关联的时候写的函数名而已

#把index函数注册为程序根路径的处理程序。函数的返回值称为响应,是客户端接收的内容。

像index这样的函数称为试图函数,试图函数返回的响应可以是包含html的简单字符串,也可以是复杂的东西

 

2.2#可变url部分映射,使用特定的装饰器语法就可以

@app.route(/user/<name>)
def user(name):
    return "<h1>hello %s</h1>"%(name)

装饰器中的<name>指定可变内容为name,name对user(name)函数中的传递参数,这2个部分内容必须一致

调用试图函数时候,flask会自动的将动态部分作为参数传入参数,这个函数中,参数用于生成个人的欢迎信息

#备注:路由中的动态部分默认使用字符串类型,可以使用int,float,path来定义;例如<int:id>;path类型也是字符串,但不把斜线视作分隔符,而将其当做动态片段的一部分

 


 3.启动服务器

调用程序实例app的run方法启动flask集成开发的web服务器

if __name__ == "__main__":
    app.run(debug=True)

debug=True代表的是调试模式,这个flask自带的run方法开启的服务器不适合在生产中使用,此处只用来测试

 


4.一个完整的Flask程序

 啥也不说,先上例子hello.py

from flask import Flask
app = Flask(__name__)

@app.route(/)
def index():
    return <h1>HelloWorld</h1>

@app.route(/user/<name>)
def user(name):
    return "<h1>hello %s</h1>"%name



if __name__ == "__main__":
    app.run(debug=True)

默认会开启服务器本机5000端口;127.0.0.1:5000

执行脚本python hello.py

浏览器测试http://127.0.0.1:5000/

     http://127.0.0.1:5000/user/xiaobai

 

基于Python的Flask的开发实战(第二节程序的基本结构)

标签:

原文地址:http://www.cnblogs.com/PythonOrg/p/5498573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!