一举庶、實現(xiàn)分頁功能
1执隧、使用切片實現(xiàn)分頁
#在網(wǎng)頁上得到page
page_number = int(request.GET.get('page',1))
#得到分頁過后的數(shù)據(jù)條數(shù)
users = Users.objects.all()[3*(page_number-1):3*page_number]
2、使用Paginator
#在網(wǎng)頁上得到page
page_number = int(request.GET.get('page',1))
#得到Users中所有的用戶數(shù)據(jù)
users = Users.objects.all()
#使用Paginator實現(xiàn)分頁
#使用Paginator實現(xiàn)按照三條數(shù)據(jù)分頁
paginator = Paginator(users,5)
#獲取某一個的信息
page = paginator.page(page_number)
當(dāng)前頁户侥,頁碼镀琉,上一頁,下一頁設(shè)置
<p>當(dāng)前頁:{{ 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為圖片上傳后所在路徑
創(chuàng)建文件夾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表單內(nèi)寫入enctype="multipart/form-data"才能提交圖片
進行表單驗證時屋摔,獲取表單提交信息時要寫入request.FILES即
form = Userform(request.POST,request.FILES)
創(chuàng)建保存用戶時加入icon字段
icon=request.FILES.get('icon')
上傳圖片展示
在工程目錄下的urls里面配置
urlpatterns += static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)
在頁面解析圖片
<img src="/media/{{ user.icon }}">
三、cooike和session登錄驗證
設(shè)置session的值
request.session['user_id'] = user.id
實現(xiàn)注銷功能
第一種替梨,刪除session和cookie
request.session.flush()
第二種钓试,獲取session_key的并實現(xiàn)刪除,刪除服務(wù)端
session_key = request.session.session_key
request.session.delete(session_key)
四装黑、csrf校檢
在表單提交里面寫入
{% csrf_token %}