Python之模板继承 and http综合
1.模板的继承
模板继承语法:
1.如何继承某个模板?
{% extends ''模板名称" %}
2.如何深挖和填坑?
深挖:
{% block 名称 %}
默认值
{% endblock %}
3.如何调用/继承被替代的模板?
挖坑:
{% block 名称 %}
默认值
{% endblock %}
填坑:
{ % block 名称 % }
#如何继承挖坑的的默认值
{{ super () }}
#后面写新加的方法
。。。。
{{ endblock %}
2.常见http方法之get和post
1. 常见HTTP请求方法:
GET: 1). 获取信息 2). 提交的信息会展示在url: http://www.wewtos.org/login?user=westos&passwd=westos
POST:1). 提交信息, 不在url里面展示, 有利于数据的安全性;
2.默认路由接受的请求方法为__get__?
如何指定接收多个HTTP请求的方法?
@app.route(’/login/’,methods=[‘GET’,‘POST’] )
视图函数:def login( ):
3. 如何判断用户请求的HTTP方法? request.method
如何获取用户POST请求提交的表单数据? request.form[‘user’]
4.模板渲染(jinja2):
why?
python中生成html不易修改与维护, 所以将html的内容独立到templates目录中;
how?
1). 去当前项目目录下寻找templtes是否存在?再去判断templates目录下是否有login.html文件?
2). 读取这个login.html文件的内容, 作为render_template的返回值;
3). 最终返回给用户浏览器;
render_template('login.html')
5.重定向和错误
redirect
return render_template(‘login.html’, message=“用户名或者密码错误”)
代码如下
首先设置本地路由,链接到index.html页面
设置login路由
捕获异常,只要出现链接错误,就返回404.html页面内容
同时设置另一个路由
执行代码后,链接到本地路由出现的是index.htnl页面在浏览器中执行后的样子
输入别的网址都会弹出404报错
下面是404.html页面内容及报错弹出框
这里index.html继承了base.html的内容
base.html页面内容即为index.html显示的内容
同时在index.html页面我们设置了登陆选项如下
所以在index页面中点击登陆,就会跳转到/login/路由上
login.html页面内容如下
这里指定了当跳转到login路由时,选择的方法为’’ post ‘’,并显示登陆按钮和空格填写信息
该HTML页面在浏览器中执行并判断填写信息是否满足,当不满足时会被要求重新填写,并告诉错误,即代码中的返回login.html页面
当登陆成功则会返回index页面
后面有一个新的路由
/user/加整形数
如果符合要求返回如下
不符合会弹出错误框