Flask 是一个相对 Django 轻量级的 web 框架。。

安装:

pip install flask

文件结构:

static/
templates/
app.py

简单的开始:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'hello'

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

debug=True 在 vscode 里成功执行,pycharm 要在选项里勾选。

通过地址传参:

@app.route('/user/<name>')
def welocome(name):
    return 'hello, %s' % name

@app.route('/user/<int:id>')
def welocome2(id):
    return 'hello, %d' % id

路径非参数部分一样会自动匹配到对应的路由,但不能有完全相同的地址路由。

from flask import render_template

@app.route('/')
def index2():
    return render_template('index.html')

——返回渲染后的 html。

向 html 传参(半角花括号会 Jekyll 报错,全角替代演示):

@app.route('/')
def index2():
    time = datetime.date.today()
    namelist = ['name1', 'name2', 'name3']
    task = {'1':'task1', '2': 'task2'}

    return render_template('index.html', time=time, namelist=namelist, task=task)

------------

日期是:{{ time }}。。
人员列表:<br/>
{% for data in namelist %}
    {{ data }}
{% endfor %}

任务:
<table border="1">
    {% for key, value in task.items() %}
    <tr>
        <td>{{ key }}</td>
        <td>{{ value }}</td>
    </tr>
    {% endfor %}
</table>

接收用户输入:

@app.route('/reg')
def reg():
    return render_template('reg.html')

@app.route('/result', methods=['POST', 'GET'])
def result():
    if request.method == 'POST':
        result = request.form
        return render_template('result.html', result=result)

------------

<form action='{{ url_for('result') }}' method='post'>
    <p>name:<input type='text' name='name'/></p>
    <p>age:<input type='text' name='age'/></p>
    <p><input type='submit' value="提交"></p>
</form>

------------

<table border="1">
{% for key, value in result.items() %}
    <tr>
        <td>{{ key }}</td>
        <td>{{ value }}</td>
    </tr>
{% endfor %}
</table>