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. python threading ThreadPoolExecutor

    线程池,为什么要使用线程池:1. 线程中可以获取某一个线程的状态或者某一个任务的状态,以及返回值2. 当一个线程完成的时候我们主线程能立即知道3. futures可以让多线程和多进程编码接口一致 获取 ...

  2. Oracle 增删改(INSERT、DELETE、UPDATE)语句

    Ø  简介 本文介绍 Oracle 中的增删改语句,即 INSERT.DELETE.UPDATE 语句的使用.是时候展现真正的技术了,快上车: 1.   插入数据(INSERT) 2.   修改数据( ...

  3. RESTful服务最佳实践(转)

    原文:https://www.cnblogs.com/jaxu/p/7908111.html 译文作者:Jaxu 英文原文:https://files-cdn.cnblogs.com/files/ja ...

  4. OWIN详细介绍

    1.OWIN.dll介绍 用反编译工具打开Owin.dll,你会发现类库中就只有一个IAppBuilder接口,所以说OWIN是针对.NET平台的开放Web接口. public interface I ...

  5. px与em的区别

    PX特点:px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.EM特点 1. em的值并不是固定的:2. em会继承父级元素的字体大小.

  6. Java多线程——查看线程堆栈信息

    Java多线程——查看线程堆栈信息 摘要:本文主要介绍了查看线程堆栈信息的方法. 使用Thread类的getAllStackTraces()方法 方法定义 可以看到getAllStackTraces( ...

  7. Java实现贪吃蛇游戏(含账号注册登录,排行榜功能)

    这是我第一次工程实践的作业,选题很多,但我只对其中的游戏开发感兴趣,可游戏就两三个类型,最终还是选择了贪吃蛇.其实就贪吃蛇本身的代码实现还算是比较简单的,可是实践要求代码行达到一定数量,所以我就额外给 ...

  8. springboot使用vue打包过的页面资源

    (一)webpack打包 如果在vue基于webpack的,build打包后得到的是如下的资源文件: webstorm中提示如下: 这个大致的意思就是这边的文件需要放在http服务器上访问,如果直接打 ...

  9. Django框架 --序列化组件(serializer)

    一 .Django自带序列化组件 Django内置的serializers(把对象序列化成json字符串) from django.core import serializers from djang ...

  10. Hibernate与Mybatis 对比

    见知乎:https://www.zhihu.com/question/21104468 总结: 1:业务简单,不涉及多表关联查询的,用Hibernate更快,但是当业务量上去后,需要精通Hiberna ...