BBS_03 day:

自定义标签 过滤器:

-->	 当页面上某一块区域的内容需要在多个页面使用
并且该区域的内容需要通过传参才能够正常显示
那么你可以考虑使用inclusion_tag 步骤:
1.在应用下必须新建一个名叫templatetags的文件夹
2.在该文件夹内新建任意名称的py文件
3.在该py文件内必须先写两句代码:
from django.template import Library
register = Library()

文章的点赞,点彩功能:

点赞点踩业务逻辑:
1.判断当前用户是否登录
2.当前这篇文章是否是当前用户自己写的
3.当前这篇文章用户是否已经点过
4.操作数据库 完成数据修改:
1.点赞点踩添加数据的时候
2.文章表里面对应的普通字段也得修改

文章的评论功能

子评论:
点击回复按钮到底发生了几件事???
1.自动获取点击评论的评论人的姓名
2.拼接 @+人名+\n
3.将拼接好的内容添加到评论框中 并且评论框自动聚焦 完善点:
存储子评论的时候 @人名\n 不应该存储进去
在渲染的时候 应该渲染出人名 django-debug-toolbar (django插件: 方便数据的查询,展示)
import json
json.encoder() -->查看json python 之间的转换关系

transaction用法:

django transaction用法:
from django.db import transaction
from django.http import HttpResponse
from django.utils.decorators import method_decorator # 类中添加装饰器,保证在该类中所有的数据库操作都在一个事物中
@method_decorator(transaction.atomic, name='dispatch')
class MyView1(object): def get(self, request):
return HttpResponse('GET') def post(self, request):
return HttpResponse('POST') class MyView2(object): # 保证在该函数中所有的数据库操作都在一个事物中
@transaction.atomic
def post(self, request): # 设置事物保存点(可设多个)
t1 = transaction.savepoint() # 如果有异常情况可回滚到指定的保存点
transaction.savepoint_rollback(t1) # 如果没有异常可提交事物
transaction.savepoint_commit(t1)
return HttpResponse('POST')

自定义 标签代码展示:

from django.template import Library
from app01 import models
from django.db.models import Count
from django.db.models.functions import TruncMonth register = Library() @register.inclusion_tag('left_menu.html')
def my_menu(username):
user_obj = models.Userinfo.objects.filter(username=username).first()
blog = user_obj.blog
# 提供侧边栏所需要的所有的数据
# 1.查询当前用户每一个分类及分类下的文章数
category_list = models.Category.objects.filter(blog=blog).annotate(num=Count('article')).values_list('name','num','pk')
# 2.查询当前用户每一个标签级标签下的文章数
tag_list = models.Tag.objects.filter(blog=blog).annotate(num=Count('article')).values_list('name','num','pk')
# 3.按照年月分组
date_list = models.Article.objects.filter(blog=blog).annotate(month=TruncMonth('create_time')).values('month').annotate(num=Count('pk')).values_list('month','num')
return locals()

BBS 03day的更多相关文章

  1. Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点

    开发一个简单的BBS论坛 项目需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被 ...

  2. python 学习笔记二十 django项目bbs论坛

    项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...

  3. http://bbs.ednchina.com/BLOG_345002072_2001308.HTM

    http://bbs.ednchina.com/BLOG_345002072_2001308.HTM

  4. 客户访问站点将bbs/链接 跳转至forum/链接下的两种方式

    显性 302 暂时重定向跳转 server { listen 80 ; server_name localhost; index index.html index.htm index.php; roo ...

  5. 前博客 http://bbs.landingbj.com/mytopic.jsp?action=mytopic&username=57071

    在工作学习的过程中,遇到了亮眼的技术点,或者 学习的心得体会,总想要记录下来,或是方便自己,或是帮助如同自己现在这般的新人.前人种树,后人乘凉.享受了前人留下的阴凉,也会考虑自己给后来者种下几棵树苗. ...

  6. bbs树形打印(一)

    前言:大家在bbs回帖时常常可以看到树形的回复形式. dfs设计 (1) 为使得Connection仅打开一次,因此以conn作为其中一个递归参数,在递归全程不关闭conn; (2)根据存入数据的树状 ...

  7. python小打小闹之简陋版BBS

    闲的蛋疼,索性写个东西玩,于是,写个类似于BBS的念头就开始了. 我们考虑到需要实现的功能: 1 只有登陆的用户才可以点赞,如果没有登陆,那么不可以点赞,点赞次数只可以为1. 2 只有登陆的用户可以评 ...

  8. http://bbs.tianya.cn/post-stocks-1665898-1.shtml

    http://bbs.tianya.cn/post-stocks-1295707-1.shtml 写过交易计划吗?有没有提前关注过某些板块或者某些股票呢?自选股里边有多少只股票?你平时复盘都是什么习惯 ...

  9. bbs网站 models

    bbs网站 models #!/usr/bin/env python #_*_coding:utf-8_*_ from django.db import models from django.cont ...

随机推荐

  1. VM1059 bootstrap-table.min.js:7 Uncaught TypeError: Cannot read property 'classes' of undefined

    参考链接:https://blog.csdn.net/liuqianspq/article/details/81868283 1.阳光明媚的下午,我在写CRUD,让数据传到前端的时候,解析的时候报错了 ...

  2. ASP.NET MVC IOC 之 Autofac 系列开篇

    本系列主要讲述Autofac在.NET MVC项目以及webform中的使用. autofac为IOC组件,实现控制反转,主要结合面向接口编程,完成较大程度的解耦工作. 作为初学者,将学习到的每一步, ...

  3. C#和Java的对比

    C#和Java的对比 C#是微软公司在2000年6月发布的一种面向对象的高级程序设计语言:Java是Sun公司在1996年1月发布的一种面向对象的.平台独立的高级程序设计语言.它们是现在最流行的面向对 ...

  4. java 学习 进阶之 一 (线程基础)

    一.线程安全 线程安全的概念:当多个线程访问某一个类(对象或方法)时.这个类始终都能表现出正确的行为那么这个类(对象或方法)就是线程安全的. synchronized:可以在任何对象及方法上加锁,而加 ...

  5. 百度地图API 基本用法

    百度地图 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富.交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持H ...

  6. Linux 配置程序包源 Nuget

    编辑文件NuGet.Config vi ~/.nuget/NuGet/NuGet.Config 新增源 <add key="fz" value="http://19 ...

  7. 学习shiro第三天

    今天比较晚,所以只看了shiro的认证策略Authentication Strategy,下面讲讲shiro的三种认证策略. 1.AtLeastOneSuccessfulStrategy:这个是shi ...

  8. pycharm 配置使用 flake8 进行语法检测

    打开 PyCharm 在 Terminal 处输入 pip install flake8 在 File ->Settings ->Tools->External Tools 添加一个 ...

  9. 《高性能 Go 代码工坊》中译

    深入研究 Go 应用性能提升的英语系列文章,这里是中译 https://www.yuque.com/ksco/uiondt

  10. (转)linux内核虚拟文件系统浅析【转】

    转自:https://www.cnblogs.com/woainilsr/p/3590716.html 转自http://hi.baidu.com/_kouu/item/4e9db8758032824 ...