Flask之Hello world 详解

**Flask之Hello world 详解

========================**

以下讲解假设你对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 %}

####Context locals

先跳过

相关推荐
ZH15455891318 小时前
Flutter for OpenHarmony Python学习助手实战:模块与包管理的实现
python·学习·flutter
choke2338 小时前
[特殊字符] Python异常处理
开发语言·python
玄同7659 小时前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
小瑞瑞acd10 小时前
【小瑞瑞精讲】卷积神经网络(CNN):从入门到精通,计算机如何“看”懂世界?
人工智能·python·深度学习·神经网络·机器学习
火车叼位10 小时前
也许你不需要创建.venv, 此规范使python脚本自备依赖
python
火车叼位10 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
孤狼warrior10 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
Katecat9966310 小时前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
玩大数据的龙威11 小时前
农经权二轮延包—各种地块示意图
python·arcgis
ZH154558913111 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter