Flask (一)

官网:https://dormousehole.readthedocs.io/en/latest/

Hello Workd

1.创建一个空项目和新的虚拟环境。安装flask的模块

  1. 直接执行
# Flask_test_demo.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello world!'


# 将url中的字符串映射到函数
@app.route('/test/<name>')
def add(name):
    return "hello %s" % name

# 将url中的整型映射到函数
@app.route('/test/<int:>')
def add(name):
    return "hello %s" % name


@app.route('/test/<int:id>')   # 另外还有float类型的映射
def welcome2(id):
    return "hello %d 号的会员" % id


if __name__ == '__main__':
    # app.run()
    app.run(debug=True) # 开启debug 模式,方便调试

启动服务生成port:

直接访问启动的端口地址:

HTML处理

Flask 主要有两个部份组成:

  • Werkzeug: 处理路由映射
  • Jinja2: 渲染HTML

引入Falsk包的时候会自动包含这两个包

'''
1. 引入from flask import render_template
2. HTML需要放在templates 下面固定写法
3. return render_template('index.html')

'''


from flask import Flask,render_template

app = Flask(__name__)


# 返回html
@app.route('/')
def welcome3():
    data = datetime.date.today() # 普通变量
    name = ['小明', '旺财', '李四']  # 传递列表
    task = {"任务": "打扫卫生", "时间": "3天"}  # 传递字典
    return render_template('index.html', var = data, list = name, task = task)

if __name__ == '__main__':
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    今天是{{data}},欢迎光临。
    今天值班的有:
    {% for name in list %}   <!-- 遍历列表 -->
        <li>{{name}}</li>
    {% endfor %}
    任务:<br/>
        <table>
            {%  for key, value in task.items()  %}   <!-- 遍历字典 -->
                <tr>
                    <td>{{key}}</td>
                    <td>{{value}}</td>
                </tr>
            {% endfor%}
        </table>
</body>
</html>

效果:

表单提交

#表单提交
# flask_test_demo.py
from flask import Flask,render_template
import datetime

app = Flask(__name__)

# 请求表单页
@app.route('/test/register')
def regisger():
    return render_template('test/register.html')

# 处理提交结果
@app.route('/result', methods=['POST', 'GET'])
def result():
    ''' 请求参数封装在 flask.request 对象中,需要导包'''
    from flask import  request
    if request.method == 'POST':
        req_parmars = request.form
        print(req_parmars)
        return render_template('test/result.html', req_parmars = req_parmars)



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

register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action = "/result", method="post">
        <p>姓名:<input type="text" , name="姓名"></p>
        <p>年龄:<input type="text" , name="姓名"></p>
        <p>籍贯:<input type="text" , name="姓名"></p>
        <p>工作:<input type="text" , name="姓名"></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

result.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
            <table>
            {%  for key, value in req_parmars.items()  %}   <!-- 遍历字典 -->
                <tr>
                    <th>{{key}}</th>
                    <td>{{value}}</td>
                </tr>
            {% endfor%}
        </table>
</body>
</html>
posted @ 2022-02-11 22:33  chuangzhou  阅读(23)  评论(0编辑  收藏  举报