2022.11.19 flask学习笔记

2022.11.19

知识点:
1.redirect(url_for("home"))重定向函数,d可以用来作为简单的判断,如果符合条件就重定向到合适的函数
2.重定向的函数如果要带参数,return redirect(url_for("user",name="admin"))
3.render_template("home.html")用来渲染html页面,html文件放在templates文件夹下面
4.向html中传递值,
py代码:

@app.route('/<name>')
def home(name):
    return render_template("home.html",content=name)


html代码:  
 

 <p>{{content}}</p>

content是变量值,叫啥都可以

5.在html中执行py代码
html文件:

{% for x in range(0,10) %}
        {% if x % 2 == 0 %}
            <p>x</p>
        {% endif %}
    {% endfor %}


x不会改变,意味着其实是取不到x的值的
这样改变:

{% for x in range(0,10) %}
        {% if x % 2 == 0 %}
            <p>{{x}}</p>
        {% endif %}
    {% endfor %}


将x放在{{}}中将解释为变量而非实际文本
传递过来的值甚至可以是数组,用来遍历6.html文件的模板继承
可以使用
base(要被继承的html文件)
{% block content %}{% endblock %}
代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <h1>czy website</h1>
    {% block content %}

    {% endblock %}
</body>
</html>

home(继承的html文件)
 

{% extends "base.html" %}
{% block content %}Home pages{% endblock %}
代码:{% extends "base.html" %}
{% block title %}Home pages{% endblock %}
{% block content %}
<h1>Test</h1>
{% endblock %}

7.应用bootstarps模板
https://getbootstrap.com/docs/5.2/getting-started/introduction/

8.POST表单提交
py代码:
 

@app.route('/login',methods = ["POST","GET"])
def login():
    return render_template(“login.html”)

html代码:

<form action="#" method="post">
    <p>Name:</p>
    <p><input type = "text" name = "nm" /></p>
    <input type = "submit" value="submit"/>
</form>

这样只是简单的做出了拥有提交按钮的页面,如果要发起实际a操作,要看下面
py代码:

@app.route('/login',methods = ["POST","GET"])
def login():
    #如果获取到是正确的提交信息,转入用户页面
    if request.method == "POST":
        #nm是form代码中获取输入值的提示框名称
        user = request.form["nm"]
        return redirect(url_for("usr",usrs=user))
    else:
        return render_template("login.html")

form表单在py代码中会以列表的形式表示出来,可以用健的方式获取到它的值

8.使用会话保持我们的用户名
import session
#半永久会话,保持五天,也可以改成minutes=5,五分钟
app.permanent_session_lifetime = timedelta(days=5)

问题
1.使用127.0.0.1:5000有可能会因为端口冲突而无法正常使用路由的问题,很简单,将端口号改一下就好,改一个不会冲突到的端口
app.run(port=3389,debug=True)
2.redirect(url_for("user",name="admin")
name=不能将值设置为与实际s的函数名称相同的值,否则会报无限重定向的错

总结:
1.创建一个flask应用

        1.最基础的flaskweb

        2.重定向和获取url中的名称并在页面中输出

2.引入html模板

        1.引入html文件,在页面中显示

        2.py数值传入html文件中并在页面上显示

        3.在html文件中执行py代码

3.使用html模板继承和bootstraps

        1.定义基础被继承html文件,在其中引入bookstrats,并使用

        2.在继承html文件中书写代码显示在页面中

4.使用post请求

        1.在py代码中使用post请求

        2.在html代码中实现对于py代码的表单

        3.py代码接受html传来的值

5.sessions会话

        1.使用session保存接受到的值,使得在一个会话的时间内都不用重新登录

        2.清除seesion信息以及长期保存session的内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值