Flask 之 Hello world 详解 - 文章教程

Flask 之 Hello world 详解

发布于 2021-04-03 字数 2605 浏览 1076 评论 0

以下讲解假设你对 python 有基本了解,熟悉 wsgi,以及了解某种 python web framework。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return "HELLO WROLD"

if __name__ == '__main__':
    app.run(debug=True)
  1. Flask 的实例 app 就是我们的 WSGI application。
  2. 创建 Flask 实例需要指定一个参数,这个参数一般是 application 的模块名字或者是包名,Flask 根据这个参数定位 templates,static files 等。
  3. route 装饰器告诉 Flask 什么样的请求路径对应这个函数。

Routing

route() 装饰器支持变量规则,用 <variable_name> 表示,还可以制订一个转换器,例如:

@app.route('/user/<username>')
def show_user_profile(username):
    # show the user profile for that user
    return 'User %s' % username

@app.route('/post/<int:post_id>')
def show_post(post_id):
    # show the post with the given id, the id is an integer
    return 'Post %d' % post_id

@app.route('/user/<path:location>')
def show_path(location):
    return location

有三种转换器:

int        accepts integers
float    like int but for floating point values
path    like the default but also accepts slashes

HTTP METHOD

from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == "POST":
        return 'post'
    else:
        return 'get'

Static Files

在 package 或则 module 同目录下创建 static 目录

url_for('static', filename='style.css')

rendering templates

默认 Flask 配置 JinJia2 作为模板引擎,因为他们是一家的,Flask 会在 templates 目录下查找模板文件,如果 application 是一个 module,那么这个 templates 目录与 application 同级目录,如果他是一个 package:

case 1: a module

/application.py /templates

 /hello.html

case 2: a application

/application

  /__init__.py
  /templates
      /hello.html

渲染模板使用 render_template()

from flask import render_template
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html',name=name)

JinJia2 模板的语法和 Mako 以及 django 的语法都差不多,可以稍作了解

<!doctype html>
<title>Hello from Flask</title>
{ % if name % }
  <h1>Hello { { name } }!</h1>
{ % else % }
  <h1>Hello World!</h1>
{ % endif % }

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

清风夜微凉

文章 1 评论 0

为你鎻心

文章 2 评论 0

xxhui

文章 0 评论 0

1PKOH46yx8j0x

文章 0 评论 0

Arthur

文章 0 评论 0