美文网首页
django07配置

django07配置

作者: fly5 | 来源:发表于2018-09-29 16:53 被阅读0次

    一、静态文件

    • 配置settings.py
      STATIC_URL='/static/'STATICFILES_DIRS = [
          os.path.join(BASE_DIR, 'static'),
      ]
      

    在html中顶部添加 {% load static %}

    二、中间件

    • 概述
    中间件是用来处理Django的请求和响应的框架级别的钩子
    本质:python类
    
    在工程目录下middleware目录下创建应用目录 
    - 在middleware/elema中创建一个elemamiddleware.py 
    from django.utils.deprecation import MiddlewareMixin 
        class MyMiddle(MiddlewareMixin): # 在视图执行前调用 
            def process_request(self,reqeust): print('get请求,参数name: ', reqeust.GET.get('name')) 
            
    - 配置settings.py文件(即在MIDDLEWARE中添加上述文件的位置)  
        'middleware.elema.elemamiddleware.MyMiddle'
        
    - 浏览器
        http://127.0.0.1:8000/?name=zyz
    
    - 效果 在终端中可以看到`get请求,参数name: zyz`
    

    三、上传图片

    • 注意
    - 文件上传时,文件数据存储在request.FILES属性中
    - form表单要上传文件需要加 enctype="multipart/form-data"
    - 上传文件必须是post请求
    
    • 上传文件的存储路径
    - 在static目录下创建upfile目录用于存储接受上传的文件
    - 配置settings.py文件
        MDEIA_ROOT = os.path.join(BASE_DIR,'static/upfile')
    
    • 表单
    <form action="{% url 'elema:savefile' %}" method="post" enctype="multipart/form-data">
        {% csrf_token %} 
        <input type="file" value="上传文件" name="file"> 
        <input type="submit" value="上传">
    </form>
    
    # 文件上传 
    def upfile(request): 
        return render(request, 'elema/upfile.html')
    
    # 文件保存 
    import os 
    from django.conf import settings # 导入settings.py 
    def savefile(request): 
        # 判断是否为POST 
        if request.method == 'POST': 
            # 获取文件内容 
            file = request.FILES['file'] 
            # 文件保存路径 
            filepath = os.path.join(settings.MDEIA_ROOT,file.name) 
            # 文件写入 
            with open(filepath,'wb') as fp:     
                for info in file.chunks():
                    fp.write(info) 
            return HttpResponse('文件上传成功')
        else: 
            return HttpResponse('文件上传失败')
    
    

    四、分页

    • Paginator创建对象
        Paginator( 列表,每页个数 )
            paginator = Paginator( list(alllist),10 )
    
    • Paginator属性
        count:对象总数
        num_pages:页面总数
        page_range:页码列表(从1开始)
    
    • Paginator方法
        page(num) 获得一个page对象
    
    • Page创建对象
        Paginator对象的page()方法返回得到Page对象(不需要手动创建)
            pageobj = paginator.page(page)
    
    • Page方法
        has_next(): 判断是否有下一页,如果有返回True 
        has_previous(): 判断是否有上一页,如果有返回True 
        has_other_pages(): 判断是否有上一页或下一页,如果有返回True 
        next_page_number(): 返回下一页的页码,如果下一页不存在抛出InvalidPage异常 
        previous_page_number(): 返回上一页的页码,如果上一页不存在抛出InvalidPage异常 
        len(): 返回当前页的数据(对象)个数
    

    相关文章

      网友评论

          本文标题:django07配置

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