Flask 是一个轻量级的 Python Web 框架,适用于小型到中型的 Web 应用程序和 API 的构建。以下是一个简单的 Flask 教程,介绍 Flask 的基本概念和用法。

安装 Flask

首先,确保你已经安装了 Python。然后,使用以下命令安装 Flask:
pip install flask

创建一个简单的 Flask 应用

创建一个名为 app.py 的文件,用于编写 Flask 应用的代码。
# app.py

from flask import Flask

# 创建 Flask 应用实例
app = Flask(__name__)

# 定义路由和视图函数
@app.route('/')
def hello():
    return 'Hello, Flask!'

# 运行应用
if __name__ == '__main__':
    app.run(debug=True)

运行 Flask 应用

在终端中执行以下命令,启动 Flask 应用:
python app.py

访问 http://127.0.0.1:5000/,你将看到 "Hello, Flask!"。

路由和视图函数

在 Flask 中,路由用于定义 URL 与视图函数之间的映射关系。在上述例子中,@app.route('/') 定义了根路径的路由,将请求映射到名为 hello 的视图函数。

动态路由

Flask 支持动态路由,允许你在路由中使用变量。例如:
# 动态路由
@app.route('/user/')
def show_user(username):
    return 'User: %s' % username

模板引擎

Flask 使用 Jinja2 模板引擎,使得在 HTML 文件中嵌入动态内容变得容易。例如:
# 引入渲染模板的函数
from flask import render_template

# 使用模板
@app.route('/template_example')
def template_example():
    return render_template('template_example.html', name='John')

在 templates 目录下创建 template_example.html:



    Flask Template Example


    

Hello, {{ name }}!





表单处理

Flask 提供了 WTForms 扩展,用于处理表单。以下是一个简单的表单处理示例:
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecretkey'

class MyForm(FlaskForm):
    name = StringField('Name')
    submit = SubmitField('Submit')

@app.route('/form_example', methods=['GET', 'POST'])
def form_example():
    form = MyForm()

    if request.method == 'POST' and form.validate_on_submit():
        name = form.name.data
        return f'Form submitted with name: {name}'

    return render_template('form_example.html', form=form)

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

在 templates 目录下创建 form_example.html:



    Flask Form Example


    

Form Example


    
        {{ form.csrf_token }}
        Name:
        {{ form.name(size=20) }}
        

        {{ form.submit() }}
    



这只是 Flask 的基础,你可以根据需求逐渐深入学习 Flask 的高级功能,如数据库集成、蓝图、中间件等。Flask 的[官方文档](https://flask.palletsprojects.com/)是深入学习的良好资源。


转载请注明出处:http://www.zyzy.cn/article/detail/272/Python3