码迷,mamicode.com
首页 > 其他好文 > 详细

一个简单的flask应用

时间:2017-09-08 18:37:47      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:post   关系   保存   python   技术分享   url   两种   直接   动态   

  一个简单的flask应用,文件名hello.py

技术分享
from flask import Flask
app = Flask(__name__)

@app.route(‘/‘)
def hello_world():
    return ‘Hello World!‘

if __name__ == ‘__main__‘:
    app.run()
技术分享
1.引入Flask类,Flask类实现了一个WSGI应用;
2.app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__
3.app.route装饰器会将URL和执行视图函数的关系保存到app.url_map属性上;
4.内置变量__name__判断表示import该模块不会执行(__name__执行该程序时候为__main__,import时候为模块文件名),
执行app.run就可以启动服务了,默认Flask只监听虚拟机的本地127.0.0.1这个地址,端口为5000。

ps:1.调试模式

  虽然 run() 方法适用于启动本地的开发服务器。如果你启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。有两种途径来启用调试模式。

一种是直接在应用对象上设置:

app.debug = True 

app.run()

另一种是作为 run 方法的一个参数传入:

app.run(debug=True)

    2.路由

  route()装饰器把一个视图函数绑定到一个URL上,也可以构造动态的URL或者一个路由上面绑定多个URL。

        2.1.变量规则

       在给URL绑定动态变量时,动态的字段以<variable_name>,这部分作为命名参数部分传递到函数。规则可以用 <converter:variable_name> 指定一个可选的转换器。

app.route(app/<username>)
def show_user_info(username):
    return "User %s" % username #User对象
app.route(app/<int:userid>):
    return "User %s" % userid

  转换器有下面几种:

  int 接受整数 

  float 同int,但是接受浮点数

    path和默认的相似,但是接受斜线

      2.2.唯一 URL / 重定向行为

  Flask 的 URL 规则基于 Werkzeug 的路由模块。这个模块背后的思想是基于 Apache 以及更早的 HTTP 服务器主张的先例,保证优雅且唯一的 URL。

      2.3 构造 URL

   url_for() 来给指定的函数构造 URL。它接受函数名作为第一个参数,也接受对应 URL 规则的变量部分的命名参数。未知变量部分会添加到 URL 末尾作为查询参数。

    2.4http方法

app.route("app/index",methods=[GET,POST])
def login():
    if request.method==POST:
        login()
    else:
        show_login_error()

  默认情况下,路由只回应 GET 请求,但是通过 route() 装饰器传递 methods 参数可以改变这个行为。GET:浏览器告知服务器:只 获取 页面上的信息并发给我。这是最常用的方法。POST:浏览器告诉服务器:想在 URL 上 发布 新信息。并且,服务器必须确保 数据已存储且仅存储一次。这是 HTML 表单通常发送数据到服务器的方法。

 

一个简单的flask应用

标签:post   关系   保存   python   技术分享   url   两种   直接   动态   

原文地址:http://www.cnblogs.com/gala1021/p/7495276.html

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