Flask 学习笔记

本文介绍了使用Python的Flask框架构建web应用的基本步骤,包括设置路由解析函数,开启调试模式,处理动态路由,以及如何渲染HTML页面和接收表单提交的数据。通过示例代码展示了如何创建简单的欢迎页面、接收用户参数和显示表单结果。
摘要由CSDN通过智能技术生成

一、网站实现

from flask import Flask

app = Flask(__name__)


# 路由解析,通过用户访问的路径,匹配相应的函数
@app.route('/')
def hello_world():  # put application's code here
    return '欢迎光临!'

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

页面显示

Chrome浏览器显示
标题Ghrome浏览器显示

 

 

 

 

 

 

 

 

 

 

# 当前程序名字
FLASK_APP = app.py
# 当前开发环境
FLASK_ENV = development
# Debug模式:0 未开启/1 开启
FLASK_DEBUG = 0
In folder /Users/apple/Desktop/可视化
# python解释器
/Users/apple/Desktop/可视化/venv/bin/python -m flask run
 * Serving Flask app 'app.py'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
# 网址,Flask生成,可直接访问
 * Running on http://127.0.0.1:5000

二、Debug模式开启

点击编辑配置

勾选FLASK_DEBUG,确定应用

 

 三、补充

路径修改

@app.route("/index")
def hello():
    return "你好"

 

 界面使用网址输入内容,路由路径不能重复,用户唯一路径访问特定的函数

# 通过访问路径,获取用户的字符串参数
@app.route("/user/<name>")
def welcome1(name):
    return "你好,%s" % name

# 通过访问路径,获取用户的整型参数
@app.route("/user/<int:id>")
def welcome2(id):
    return "数字:%d" % id

 

 

四、html文件渲染网页

新建html文件

代码使用

from flask import Flask, render_template

app = Flask(__name__)


# 返回给用户,渲染网页
@app.route("/")
def index2():
    return render_template("index.html")

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

 

五、传递变量

import datetime

@app.route("/")
def index2():
    time = datetime.date.today()   # 普通变量
    name = ["张三", "李四", "王二"]  # 列表类型
    task = {                       # 键值对
        "任务": "打扫卫生",
        "时间": "三个小时"
    }
    return render_template("index.html", var=time, list=name, task=task)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试</title>
</head>
<body>
    欢迎光临,今天是{{ var }}!<br>

    今天值班的有:<br>

    <!--用大括号和百分号括起来的是控制结构-->
    {% for data in list %}
        <li>{{ data }}</li>
    {% endfor %}<br>

    <!--了解表格的打印-->
    任务是:<br>
        <table border="1">
            <!--[(key,value),(key,value),(key,value)]-->
            {% for key, value in task.items() %}
            <tr>
                <td>{{key}}</td>
                <td>{{value}}</td>
            </tr>
            {% endfor %}
        </table>
</body>
</html>

 

 六、表单提交

@app.route("/test/register")
def register():
    return render_template("test/register.html")

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://localhost:5000/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>

 

七、提交显示

# 提交表单
@app.route("/test/register")
def register():
    return render_template("test/register.html")


# 接收表单提交的路由,需要指定的methods为POST
@app.route("/result", methods=['POST', 'GET'])
def result():
    if request.method == 'POST':
        result = request.form
    return render_template("test/result.html", result=result)

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table border="1">
            <!--[(key,value),(key,value),(key,value)]-->
            {% for key, value in result.items() %}
            <tr>
                <th>{{key}}</th>
                <td>{{value}}</td>
            </tr>
            {% endfor %}
        </table>
</body>
</html>

网址更改

 

resigter中不能写确定的地址,使用修改后的方法可自动匹配

# 更改前
<form action="http://localhost:5000/result" method="post">
    pass
</form>


# 更改后
<form action="{{ url_for('result') }}" method="post">
    pass
</form>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值