1.模板的继承
模板继承语法:
1.如何继承某个模板?
{% extends ''模板名称" %}
2.如何深挖和填坑?
深挖:
{% block 名称 %}
默认值
{% endblock %}
3.如何调用/继承被替代的模板?
挖坑:
{% block 名称 %}
默认值
{% endblock %}
填坑:
{ % block 名称 % }
#如何继承挖坑的的默认值
{{ super () }}
#后面写新加的方法
。。。。
{{ endblock %}
2.常见http方法之get和post
首先有两个重要的模块
requests:在Flsak中由全局的request对象来提供信息。
属性:
1.request.method: 请求的方法
2.request.form: 返回form的内容
3.request.args: 返回请求中的参数
4.request.cookies: cookies信息
5.request.headers: 请求的headers信息,返回的结果是个列表
6.date,files: date是请求的数据,files是请求上传的文件
1. 常见HTTP请求方法:
GET: 1). 获取信息 2). 提交的信息会展示在url: http://www.wewtos.org/login?user=westos&passwd=westos
POST:1). 提交信息, 不在url里面展示, 有利于数据的安全性;
HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获得表头
PUT:从客户端向服务器传送的数据取代指定的文档的内容
DELETE:请求服务器删除指定的页面
TRACE:回显服务器收到的请求,主要用于测试和诊断
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 redirect('http://www.baidu.com') 页面就会跳转到百度页面
模板渲染: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/加整形数
如果符合要求返回如下
不符合会弹出错误框
3.判断是否登陆的装饰器与网页拓展
注意:此项目依赖于上个项目的所有文件
以下是代码
这里提前设置了一个字典 usersinfo,用来储存已经存在的用户及其密码,可直接登陆
这里也设置了一个装饰器,用来判断用户是否登陆
判断用户名和密码是否匹配,并且存储到session中
用户注销,当登陆进去后可以选择注销,切换另一用户;
其中session.pop( )用来移除session中的存储信息
并重定向返回index路由
用户注册,如果用户名已经存在,则提示用户存在并返回注册页面;否则向字典中添加新的用户名和密码,然后返回到登陆页面
实验结果如下
在base.html中构建桥梁,将路由和按钮连接起来
所以登陆成功后会显示用户名
此时已经登陆成功
而注册页面也登陆页面是差不多的,如图
在注册时,除了userinfo里已存在的westos用户,其他用户都可以注册
这里有必要说明,还有检查本机各项性能的代码
同样也是一个新的路由
而sysinfo.html页面内容如下
最终在浏览器中返回的结果如下