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('/')
def home(name):
return render_template("home.html",content=name)
html代码:
{{content}}
content是变量值,叫啥都可以
5.在html中执行py代码
html文件:
{% for x in range(0,10) %}
{% if x % 2 == 0 %}
x
{% endif %}
{% endfor %}
x不会改变,意味着其实是取不到x的值的
这样改变:
{% for x in range(0,10) %}
{% if x % 2 == 0 %}
{{x}}
{% endif %}
{% endfor %}
将x放在{{}}中将解释为变量而非实际文本
传递过来的值甚至可以是数组,用来遍历6.html文件的模板继承
可以使用
base(要被继承的html文件)
{% block content %}{% endblock %}
代码:
{% block title %}{% endblock %}
czy website
{% block content %}
{% endblock %}
home(继承的html文件)
{% extends "base.html" %}
{% block content %}Home pages{% endblock %}
代码:{% extends "base.html" %}
{% block title %}Home pages{% endblock %}
{% block content %}
Test
{% 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代码:
这样只是简单的做出了拥有提交按钮的页面,如果要发起实际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的内容