美文网首页
day7-分页、上传图片、session登录、csrf校检

day7-分页、上传图片、session登录、csrf校检

作者: 旧时初_2e8d | 来源:发表于2018-09-18 19:45 被阅读0次

    一、实现分页功能

    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 %}

    相关文章

      网友评论

          本文标题:day7-分页、上传图片、session登录、csrf校检

          本文链接:https://www.haomeiwen.com/subject/njemnftx.html