python之flask框架初识

python之flask框架初识,第1张

文章目录
  • 为什么要开启debug模式?
  • debug开启步骤
  • 通过用户访问的路径,匹配相应的函数
  • 通过访问路径,获取用户字符串参数
    • 一个参数
    • 多个参数
  • 通过访问路径,获取用户整型参数
  • 通过访问路径,获取用户float参数
  • 向页面传递一个变量
    • 普通变量
    • 列表类型
    • 字典类型
  • 提交表单
    • 项目目录
      • app.py
      • register.html
      • result.html

为什么要开启debug模式?
  1. 及时可以刷新网页,更新数据
  2. 一些错误,也可以展现在网页上,比如404、
debug开启步骤

一、右上角打开多选框

二、找到编辑配置

三、在FLASK_DEBUG上打勾、应用即可

通过用户访问的路径,匹配相应的函数
from flask import Flask
app = Flask(__name__)

#路由解析,通过用户访问的路径,匹配相应的函数
@app.route('/')
def hello_world():
    return '你好!'
if __name__ == '__main__':
    app.run()

通过访问路径,获取用户字符串参数 一个参数
from flask import Flask

app = Flask(__name__)

#路由解析,通过用户访问的路径,匹配相应的函数
@app.route('/user/')
def welcom(name):
    return '你好,%s!'%name
if __name__ == '__main__':
    app.run()

多个参数
from flask import Flask

app = Flask(__name__)

#路由解析,通过用户访问的路径,匹配相应的函数
@app.route("/user//")
def welcom(name,name1):
    return "你好,%s!,你好,%s!"%(name,name1)
if __name__ == '__main__':
    app.run()

通过访问路径,获取用户整型参数
from flask import Flask

app = Flask(__name__)

# 通过访问路径,获取用户整型参数
@app.route("/user/")
def welcom2(id):
    return "你好,%d!号的会员"%id
if __name__ == '__main__':
    app.run()

通过访问路径,获取用户float参数

与上面整型参数类似,就不写了

路由路径不能重复,用户通过唯一路径访问特定的函数

向页面传递一个变量 普通变量


app.py界面

from flask import Flask,render_template
import datetime
app = Flask(__name__)

#向页面传递一个变量
@app.route("/")
def index2():
    time = datetime.date.today()
    return render_template("index.html",var = time)

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

index.html界面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    今天是{{ var }},欢迎光临。
</body>
</html>

注意变量传递,用{{ }}访问一般变量

列表类型
@app.route("/")
def index2():
    time = datetime.date.today()            #普通变量
    name = ["小张","小王","小泽"]             #列表类型
    return render_template("index.html",var = time,list = name)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    今天是{{ var }},欢迎光临。<br/>
    今天值班的有:<br/>
    {% for data in list %}              <!--用大括号和百分号括起来的是控制结构,还有if-->
        <li>{{ data }}</li>
    {% endfor %}
</body>
</html>
字典类型
@app.route("/")
def index2():
    time = datetime.date.today()            #普通变量
    name = ["小张","小王","小泽"]             #列表类型
    task = {"任务":"打扫卫生","时间":"3小时"}   #字典类型
    return render_template("index.html",var = time,list = name,task = task)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    今天是{{ var }},欢迎光临。<br/>
    今天值班的有:<br/>
    {% for data in list %}              <!--用大括号和百分号括起来的是控制结构,还有if-->
        <li>{{ data }}</li>
    {% endfor %}

    任务:<br/>                        <!--了解一下如何在页面上打印表格,以及如何迭代-->
        <table border="1">             <!--<table border="1"> 代表 表格有边界 -->
            {% for key,value in task.items() %}       <!--[(key,value),(key,value),(key,value)]-->
            <tr>
                <td>{{key}}</td>        <!--<td></td>为列 ,<tr></tr>是行 -->
                <td>{{value}}</td>
            </tr>
            {% endfor %}
        </table>
</body>
</html>

提交表单 项目目录

app.py
from flask import Flask,render_template,request
import datetime
app = Flask(__name__)
# 表单提交
@app.route('/test/register')
def register():
    return render_template("test/register.html")        # 文件路径 register.html放在test下

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

register.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="{{url_for('result') }}" method="post">           <!-- url_for('result')自动导向函数名,方便后面修改 -->
    <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 border="1">             <!--<table border="1"> 代表 表格有边界 -->
            {% for key,value in result.items() %}       <!--[(key,value),(key,value),(key,value)]-->
            <tr>
                <th>{{key}}</th>
                <td>{{value}}</td>
            </tr>
            {% endfor %}
        </table>
</body>
</html>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/916970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存