zoukankan      html  css  js  c++  java
  • day 68 bbs项目知识点

    admin后台管理(******)
    能够对注册了的模型表 生成增删改查起码四个页面
    http://127.0.0.1:8000/admin/app01/userinfo/ 查看用户
    http://127.0.0.1:8000/admin/app01/userinfo/1/change/ 编辑用户
    http://127.0.0.1:8000/admin/app01/userinfo/add/ 添加用户
    http://127.0.0.1:8000/admin/app01/userinfo/2/delete/ 删除用户

    http://127.0.0.1:8000/admin/app01/blog/ 查看个人站点
    http://127.0.0.1:8000/admin/app01/blog/1/change/ 编辑个人站点
    http://127.0.0.1:8000/admin/app01/blog/add/ 添加个人站点
    http://127.0.0.1:8000/admin/app01/blog/2/delete/ 删除个人站点



    用户头像的渲染
    网站默认的静态文件资源 默认放在static文件夹下
    用户上传的静态文件资源 也应该单独存放在某一个文件夹

    # 规定用户上传的静态文件资源全部放到某一个指定的文件夹下
    MEDIA_ROOT = os.path.join(BASE_DIR,'media')

    from django.views.static import serve
    from BBS import settings
    # 暴露给外界的后端文件资源
    url(r'^media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT})


    图片防盗链
    请求来的时候 会检测当前请求的源地址是否来自于网站自己的
    refer 放在请求头里面的数据 用来表示你是属于哪个网站

    如果还想用 最简单粗暴的方式就是先下载到本地(写爬虫自动下)




    对日期进行切割
    日期归档          content          create_time     month
    1                         111              2019-11-1       2019-11 
    1                         111              2019-11-25     2019-11
    1                         111              2019-11-10     2019-11
    1                         111              2019-10-1       2019-10

    #官方提供的文档
    from django.db.models.functions import TruncMonth
    Article.objects
    .annotate(month=TruncMonth('create_time'))     # Truncate to month and add to select list
    .values('month')   # Group By month
    .annotate(c=Count('id'))    # Select the count of the grouping
    .values('month', 'c')   # (might be redundant, haven't tested) select month and count

    注意:当你写的url再访问的时候发现没有命中,那么你应该去urls.py中查看是否被前面的url中途拦截了 最省力的解决方式 就是调换位置



    自定义inclusion_tag
    当页面上的某一块区域需要经常被使用 并且需要传参数才能够渲染出来 
    那么你可以考虑使用inclusion_tag

    自定义inclusion_tag的步骤:       

    #跟自定义过滤器和标签是一样的
    1.创建一个名字必须交templatetags文件夹
    2.新建任意一个py文件
    3.py文件内 写固定的两行代码
    from django.template import Library
    register = Library()

    #工作原理     

    类似于函数的调用过程
    你在使用inclusion_tag的时候,可以为其传参,它会将参数传递给一个html页面
    该页面会利用传递过来的参数 渲染页面 然后将渲染好的页面 放在调用inclusion_tag的地方





























  • 相关阅读:
    【leetcode】328 Odd Even Linked List
    【leetcode】86 partition list
    【leetcode】92 Reverse Linked List II
    【leetcode】220 ContainsDuplicate3
    【leetcode】219 Contains Duplicate2
    【leetcode】149 Max Points on a Line
    Java实现验证码图片
    求解两点(经纬度坐标)的距离
    POI开源项目-PPT2PNG转换测试
    编程内功修炼之设计模式—责任链模式
  • 原文地址:https://www.cnblogs.com/wwei4332/p/11799572.html
Copyright © 2011-2022 走看看