flask框架

flask框架的核心就是Werkzeug(负责路由转发的),Jinja2

  • static就是存一些css,js文件,用来网页素材提供
    templates存放html的网页文件,反馈给用户想要的一些内容
  • pycharm默认是没有开启debug模式的,即你改程序,只有重新启动服务器才生效,
    在这里插入图片描述
    开启,debug模式方法
    在这里插入图片描述
    在这里插入图片描述
  • 下面这样写,应该怎样访问呢
from flask import Flask

app = Flask(__name__)

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


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

运行结果

 * Debugger is active!
 * Debugger PIN: 805-039-106
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

那你直接输入地址就可以访问了吗,No!
要在这个地址之后加上/index
在这里插入图片描述

  • 带参数的
@app.route('/user/<name>') #这里接收到的name直接给了下面的函数参数
def welcome(name):
    return '欢迎%s' % name

这样的话如果在地址栏输入一个姓名,就会显示如下
在这里插入图片描述

@app.route('/user/<int:id>')#此外还有float类型
def hello_world(id):
    return '你好,%d号的会员' % id

在这里插入图片描述
2. 返回一个网页

from flask import Flask, render_template

@app.route('/')
def hello_world1():
	#返回给用户渲染后得文件
    return render_template("index.html")

动态的网页

@app.route('/')
def hello_world1():
    #返回给用户渲染后得文件
    time = datetime.date.today()
    #下面是将var这个变量传递给网页
    return render_template("index.html", var = time)

在这里插入图片描述

【列表】 的打印

在这里插入图片描述
核心代码

今天是{{ var }}, 欢迎光临
今天值班的有:<br/>
{% for name in names %} <!--%{括起来是控制结构,只有forif,属于jinjia框架独有的内容-->
    <li>{{ name }}<li/>
{% endfor %}
【字典】 的打印

html中

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

.py中

def hello_world1():
    # 返回给用户渲染后得文件
    time = datetime.date.today()  # 普通变量
    stu = ['校长', '小张', '里斯', '王五']
    task = {'任务': '打扫卫生', '时间': "今天"}
    # 下面是将var这个变量传递给网页
    return render_template("index.html", var=time, names=stu, task=task)
表单提交

.py中

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


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

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" , name="提交"></p>
</form>
</body>
</html>

result.html中的文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
提交成功

</body>
</html>

运行结果
在这里插入图片描述
报这个错误,那是因为如果不指定访问方式,默认是get,但是提交表单这样的访问应该是post
在这里插入图片描述
但是只提交了信息,怎样拿到用户输入的信息呢
首先引入这个request库

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

这样将信息传递给网页,即可在网页上打印输出
result.html

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

</body>
</html>

但是大家刚才注意到没有
在这里插入图片描述
怎样动态生成呢
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云风Com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值