Django--BBS项目
2016-04-02 07:53
417 查看
需求模仿抽屉()和虎嗅()做一个网站bbs
知识点Django知识:
models表字段第一个属性可以用 u"别名" 标明字段名称,效果同 verbose_name='别名';
使用Django自带的用户认证表 from django.contrib.auth.models import User ,里面包含了username和password等,它是一对一的关系,即每个账户对应了自己的一个关联表;
评论只是多一个parent字段,外键是"self",然后用递归函数取出;
models.create()方法只返回true or false ,save()方法能返回具体;
migrate只创建auth和Django表,不会创建自己的表;
blank=True,是Django-admin页面中可以为空,null=True,代表数据库中可以为空;
bootstrap,一行12格,外层div要有class=‘row’,里层div直接写占几格col-md-x;
CSRF:<form>{% csrf_token %};view中必须用render返回;
bootstrap中使元素移到最右边:class='pull-right' ;
文章后发布在前面,用reversed,{% for article in articles reversed%}
前端母版simpletag定义block head-js,子版引用block,调取ckeditor的js文件
form中写一个textarea标签,id(js查找),name(提交后台)不可少;
前端母版simpletag定义block bottom-js,子版引用block,自写javascript;
只一行:CKEDITOR.replace('id');
还可自写配置: CKEDITOR.editorConfig = function(config){}; 定义样式等等。
正文的格式带标签:{{ article_obj.content | safe }} 这样就解决了。
项目步骤
表中包括的字段:用户表:账户、真实姓名、用户属组
用户组表:组名
文章表:文章名、所属板块、标题图片、内容、作者、发布时间、是否隐藏、优先级
板块表:板块名称、版主
评论表:文章名、父评论、评论内容、评论时间
点赞表:文章名、用户、点赞时间
初始化数据库
后台中添加文章,评论等,跑通流程
urls配置、views配置
用户登录后的dropdown下拉菜单,在前端用if判断,如果登录了就显示注销啥的,没登录就显示注册和登录按钮
logout注销,urls,views,用Django原生logout函数
主页当成模板,其它板块页面(simple_tag母版继承、板块用动态id),所以综合区不能用动态id过滤;
admin后台加入板块,并自定义显示信息;
各板块的标签active转换效果
综合板块前端页面index.html,(左右栏占比,文章栏)
每个文章的链接、文章页面、文章不存在异常处理、404页面;图片要等发布做完才能显示,因为这时数据库中的路径不能获取到;
登录后右上角显示登录状态,登出
form表单验证合法性
数据库插入数据
发布成功显示什么,没有这个文章id就创建。。。
最新发布的文章置顶,用reverse查询
图片上传功能完善,img传到每个用户自己的目录里
分级评论
一些新知识models:原生User表
admin:显示多个字段
显示‘账户名’或‘登录’按钮:
板块按数字分页:
标签切换高亮:
文章详细页:
详细参考:day20课上代码或homework
来自为知笔记(Wiz)
知识点
Django知识:
models表字段第一个属性可以用 u"别名" 标明字段名称,效果同 verbose_name='别名';使用Django自带的用户认证表 from django.contrib.auth.models import User ,里面包含了username和password等,它是一对一的关系,即每个账户对应了自己的一个关联表;
评论只是多一个parent字段,外键是"self",然后用递归函数取出;
models.create()方法只返回true or false ,save()方法能返回具体;
migrate只创建auth和Django表,不会创建自己的表;
自关联ForeignKey("self")的时候,要加参数 related_name,而且名字不能和外键字段名称相同;因为反向查询的时候,Comment.parent_comment和Comment.comment会冲突。
blank=True,是Django-admin页面中可以为空,null=True,代表数据库中可以为空;
STATIC_URL= '/static/'代表了遍历STATICFILES_DIRS中所有的目录,所以调用的时候就写/static/...;
urls映射表起别名,name=“别名”,前端调用:{% url '别名' %},url名称无论更改与否,都不会影响;
上传文件小于2.5M会存储在内存,大于2.5M会创建临时文件;
前端知识:
request.path 获取用户请求url路径,不包括ip和端口bootstrap,一行12格,外层div要有class=‘row’,里层div直接写占几格col-md-x;
models反向查询:通过谁关联我的表,可以取到table_set的一个集合,再通过select_related,将集合变成一个列表,从而可以计算数量;
列表水平排列:<ul class="list-inline"><li>.....</ul>
CSRF:<form>{% csrf_token %};view中必须用render返回;
bootstrap中使元素移到最右边:class='pull-right' ;
文章后发布在前面,用reversed,{% for article in articles reversed%}
ckeditor编辑器
发表文章正文使用前端母版simpletag定义block head-js,子版引用block,调取ckeditor的js文件
form中写一个textarea标签,id(js查找),name(提交后台)不可少;
前端母版simpletag定义block bottom-js,子版引用block,自写javascript;
只一行:CKEDITOR.replace('id');
还可自写配置: CKEDITOR.editorConfig = function(config){}; 定义样式等等。
正文的格式带标签:{{ article_obj.content | safe }} 这样就解决了。
项目步骤
1、设计数据库
创建表:用户表、用户组表、文章表、板块表、评论表、点赞表。表中包括的字段:用户表:账户、真实姓名、用户属组
用户组表:组名
文章表:文章名、所属板块、标题图片、内容、作者、发布时间、是否隐藏、优先级
板块表:板块名称、版主
评论表:文章名、父评论、评论内容、评论时间
点赞表:文章名、用户、点赞时间
初始化数据库
2、admin页面
将models表加入admin后台中添加文章,评论等,跑通流程
3、前端页面
Bootstrap页面index.htmlurls配置、views配置
用户登录后的dropdown下拉菜单,在前端用if判断,如果登录了就显示注销啥的,没登录就显示注册和登录按钮
logout注销,urls,views,用Django原生logout函数
主页当成模板,其它板块页面(simple_tag母版继承、板块用动态id),所以综合区不能用动态id过滤;
admin后台加入板块,并自定义显示信息;
各板块的标签active转换效果
综合板块前端页面index.html,(左右栏占比,文章栏)
每个文章的链接、文章页面、文章不存在异常处理、404页面;图片要等发布做完才能显示,因为这时数据库中的路径不能获取到;
4、登录
登录页面login.html登录后右上角显示登录状态,登出
5、用户操作
发帖,右上角下拉菜单做一个发帖选项form表单验证合法性
数据库插入数据
发布成功显示什么,没有这个文章id就创建。。。
最新发布的文章置顶,用reverse查询
图片上传功能完善,img传到每个用户自己的目录里
分级评论
一些新知识models:原生User表
来自为知笔记(Wiz)
相关文章推荐
- 一步一步利用django创建博客应用(一)
- django基础
- Go语言版HelloWorld
- Pollard's Rho Algorithm——求正整数的质因数
- LeetCode Algorithms #66 <Pascal's Triangle>
- Django视图和网址
- LeetCode Algorithms #26 <Remove Duplicates from Sorted Array>
- 【Google Code Jam】Reverse Words
- LeetCode Algorithms #66 <Remove Element>
- Codeforces 367A Sereja and Algorithm 【规律】
- LeetCode Algorithms #27 <Remove Element>
- HDU 5642 King's Order
- just proxy 代理工具 上谷歌google 2016年最新
- 窗体透明,但窗体上的控件不透明(简单好用)good
- Codeforces 653B Bear and Compressing
- 【GOF23设计模式】_观察者模式
- django UnicodeEncodeError
- django cache 设置
- Google Gson 使用简介
- Zookeeper全解析——Paxos作为灵魂