一个简单的flask应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的flask应用相关的知识,希望对你有一定的参考价值。

  一个简单的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应用的主要内容,如果未能解决你的问题,请参考以下文章

无论我做啥,超级简单的 Flask 应用程序的云构建都失败了

flask源代码笔记——应用启动

一个简单的flask应用

python Flask - 数据库片段

使用 Vue + Flask 搭建单页应用

flask请求和应用上下文