django-搭建BBS关键点总结
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://www.cnblogs.com/pythonywy/p/11408318.html
四.登入后的重要操作
可以利用的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")
django-搭建BBS关键点总结的更多相关文章
- django搭建BBS-表单创建&注册
django搭建BBS-表单创建&注册 0824自我总结 文件结构 app 接口 migrations __inint__.py admin.py 管理员页面注册表单用 apps.py bbs ...
- django搭建BBS-登入&验证码的生成
django搭建BBS-登入&验证码的生成 基于注册完成后 文件结构 app 接口 migrations __inint__.py admin.py 管理员页面注册表单用 apps.py bb ...
- day09搭建均衡负载和搭建BBS博客系统
day09搭建均衡负载和搭建BBS博客系统 搭建BBS博客系统 本次搭建bbs用到的技术 需要用到的: 1.Nginx+Django 2.Django+MySQL 环境准备 主机 IP 身份 db01 ...
- 搭建BBS博客系统
目录 一:搭建BBS项目 1.部署数据库 2.启动数据库 3.进入数据库 4.远程连接MySQL数据 5.pycham连接Mysql 二:开始部署BBS 1.上传代码 2.数据库迁移 3.删除文件 4 ...
- Django搭建简易博客
Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...
- Django搭建及源码分析(三)---+uWSGI+nginx
每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ...
- 初学django搭建一个通讯录应用
---恢复内容开始--- django搭建一个通讯录应用 一.环境介绍 window10 64位 Django-1.5.12 python 2.7 Sqlite3 二.基本安装 python2.7安装 ...
- Django搭建博客网站(四)
Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...
- Django搭建博客网站(三)
Django搭建博客网站(三) 第三篇主要记录view层的逻辑和template. Django搭建博客网站(一) Django搭建博客网站(二) 结构 网站结构决定我要实现什么view. 我主要要用 ...
随机推荐
- 人工智能-智能创意平台架构成长之路(四)-丰富多彩的banner图生成解密第一部分(对标阿里鹿班的设计)
我们之前讲了很多都是平台架构的主体设计,应用架构设计以及技术架构的设计,那么现在我们就来分享一下丰富多彩的banner图是怎么生成出来的. banner图的生成我们也是不断的进行迭代和优化,这块是最核 ...
- MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05
目录 mysql语句注释 navicat 的基本使用 特色(个人总结) 与数据服务器建立连接 创建&打开数据库.表 创建 打开 修改操作表结构 修改表结构 查询修改操作表数据 基本语句对应的操 ...
- Net基础篇_学习笔记_第十二天_面向对象继承(父类和子类)
继承 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类.Student.Teacher.Driver 子类 派生类Person ...
- Lucene 全文检索入门
博客地址:http://www.moonxy.com 一.前言 Lucene 是 apache 软件基金会的一个子项目,由 Doug Cutting 开发,是一个开放源代码的全文检索引擎工具包,但它不 ...
- JVM的一些工具的简要使用
JConsole(可视化工具) 运行 JConsole内存监控 测试代码 import java.util.ArrayList; import java.util.List; public class ...
- 洛谷 P3868 [TJOI2009]猜数字
题意简述 给定\(a[1],a[2],\cdots,a[n]\) 和 \(b[1],b[2],\cdots,b[n]\),其中\(b\)中元素两两互素. 求最小的非负整数\(n\),满足对于任意的\( ...
- oracle 11g 下载安装 使用记录
Oracle 11g 使用记录 1.下载oracle快捷安装版: (1)下载连接:https://pan.baidu.com/s/1ClC0hQepmTw2lSJ2ODtL7g 无提取码 (2)去 ...
- vue中事件修饰符详解(stop, prevent, self, once, capture, passive)
==.stop== 是阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件 ==.prevent== 是阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提 ...
- centos赋予访问权限
chmod u+x *.sh (代表授权现在所处的文件目录下的所有以:.sh的文件 启动tomcat:/usr/local/tomcat9/bin/shutdown.sh 关闭tomcat:/usr/ ...
- [Optimized Python] 17 - Performance bottle-neck
前言 对于一门编程语言,没接触到“优化”和“库代码”的源码理解程度,不足以谈“掌握”二字. 本篇的学习笔记,同时也意味着自己终于触及到了Python的junior国际水准.(joke) 要学的东西有很 ...