首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django-搭建BBS关键点总结

django-搭建BBS关键点总结

作者头像
小小咸鱼YwY
发布2019-09-11 14:51:59
5550
发布2019-09-11 14:51:59
举报
文章被收录于专栏:python-爬虫python-爬虫

0826自我总结

django-搭建BBS关键点总结

一.关于开口子,直接输入url访问文件内容

django自带开了个口子是static文件可以直接访问到

手动开口子

urs.py

from django.views.static import serve


urlpatterns = [
    url(r'^avatar/(?P<path>.*)', serve, kwargs={'document_root': 开口文件的路径}),
]
#这里的r'^avatar/(?P<path>.*),前面的路径等同于后面设置的路径,而下面正则匹配的内容为内容的拼接前面的就是完整的一个路径,这样就可以url直接访问文件夹

二.关于登入验证码中解决并发的问题

解决方法:将code存在session中

注意点:如果同时在一个浏览器中打开两个相同的网页,他的code以后的那个网站为准,这是session的特性

三.验证码的生成

https://cloud.tencent.com/developer/article/1503593

四.登入后的重要操作

可以利用的auth模块中的login

在登入成功的时候

将uesr对象存放在request中方便后续操作

auth.login(request,user)

也可以在网页中完成是否登入的判断

{% if request.user.is_authenticated %}

完成注销操作

auth.logout(request)

五.表单的查找

#查询当前站点下所有标签对应的文章数

#查询当前站点下所有分类对应的文章数
# 查询所有分类对应的文章数
# 分组查询固定规则:
# filter 在annotate前表示where条件
# values 在annotate前表示group by
# filter 在annotate后表示having条件
# values 在annotate后表示取值
# category_ret=models.Category.objects.all().values('pk').annotate(cou=Count('article__nid')).values('title','cou')
# 查询当前站点下所有分类对应的文章数
category_ret=models.Category.objects.all().filter(blog=blog).annotate(cou=Count('article__nid')).values_list('title','cou','nid')
print(category_ret)
# 查询当前站点下所有标签对应的文章数
tag_ret=models.Tag.objects.all().filter(blog=blog).annotate(cou=Count('article__nid')).values_list('title','cou','nid')
print(tag_ret)
#查询某年某月下对应的文章数

'''
            from django.db.models.functions import TruncMonth
            Sales.objects
            .annotate(month=TruncMonth('timestamp'))  # 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

    '''
year_ret=models.Article.objects.all().annotate(month=TruncMonth('create_time')).values('month').annotate(c=Count('nid')).values_list('month','c')

关键点:

  • 主键可以直接缩写成pk
  • 关于annotate
    • 只要是两个 model 类通过 ForeignKey 或者 ManyToMany 关联起来,那么就可以使用 annotate 方法来统计数量。
    • annotate(字段名称=聚会函数)
    • annotate 前面有values时候,主要是加快的查询的速度,values中必须要有annotate的依据

六.自定义文件夹存储路径

settings.py

#加这两句,以后再上传的图片,都放在media文件夹下
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
# MEDIA_ROOT = os.path.join(BASE_DIR, "app01")
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0826自我总结
  • django-搭建BBS关键点总结
    • 一.关于开口子,直接输入url访问文件内容
      • 二.关于登入验证码中解决并发的问题
        • 三.验证码的生成
          • 四.登入后的重要操作
            • 五.表单的查找
              • 六.自定义文件夹存储路径
              相关产品与服务
              验证码
              腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档