一、实现分页功能
1、使用切片实现分页
#在网页上得到page
page_number = int(request.GET.get('page',1))
#得到分页过后的数据条数
users = Users.objects.all()[3*(page_number-1):3*page_number]
2、使用Paginator
#在网页上得到page
page_number = int(request.GET.get('page',1))
#得到Users中所有的用户数据
users = Users.objects.all()
#使用Paginator实现分页
#使用Paginator实现按照三条数据分页
paginator = Paginator(users,5)
#获取某一个的信息
page = paginator.page(page_number)
当前页,页码,上一页,下一页设置
<p>当前页:{{ page.number }}</p>
<p>页码:{% for i in page.paginator.page_range %}
<a href="{% url 'app:users' %}?page={{ i }}">{{ i }}</a>
{% endfor %}
</p>
<p>
{% if page.has_previous %}
<a href="{% url 'app:users' %}?page={{ page.previous_page_number }}">上一页</a>
{% endif %}
{% if page.has_next %}
<a href="{% url 'app:users' %}?page={{ page.next_page_number }}">下一页</a>
{% endif %}
</p>
二、上传图片
安装Pillow处理图片
在模型中定义icon,upload为图片上传后所在路径
创建文件夹media存放upload
在setting中配置media路径
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
icon = models.ImageField(upload_to='upload',null=True,verbose_name='头像')
在注册页面写入
<p>头像:<input type="file" name = "icon"></p>
然后在form表单内写入enctype="multipart/form-data"才能提交图片
进行表单验证时,获取表单提交信息时要写入request.FILES即
form = Userform(request.POST,request.FILES)
创建保存用户时加入icon字段
icon=request.FILES.get('icon')
上传图片展示
在工程目录下的urls里面配置
urlpatterns += static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)
在页面解析图片
<img src="/media/{{ user.icon }}">
三、cooike和session登录验证
设置session的值
request.session['user_id'] = user.id
实现注销功能
第一种,删除session和cookie
request.session.flush()
第二种,获取session_key的并实现删除,删除服务端
session_key = request.session.session_key
request.session.delete(session_key)
四、csrf校检
在表单提交里面写入
{% csrf_token %}
网友评论