自强学堂
自强学堂:学习、分享、让你更强!
Django 教程HTMLCSSJAVASCRIPTJQUERYSQLPHPBOOTSTRAPANGULARXML
 

BVDN-8 论坛功能

我们从零开始至今,一直在完善BVDN这些工具本身,比如环境搭建,版本匹配,用户账户配置这些,并没有真正的用BVDN工具去实现一些我们想做的事。不过正所谓工欲善其事,必先利其器,到现在为止,我们的前期准备工作算是彻底做完了。从今天开始我们要正式用BVDN去做事了٩(๑òωó๑)۶


论坛

贴吧是最简单最容易实现的网站功能,我们就先做这个吧。

其实开发所有的功能,大概都是这么一个顺序

首先我们startapp tool_03,然后建立帖子和评论的模型如下


tool_03.models

注意,那两个created_at的默认值不要写很小的数字,要写跟我这个差不多的数,这个数是从1970年1月1日至今的秒数,如果胡乱填的话,会引起很莫名其妙的错误,要注意!

然后用python manage.py makemigrations/migrate 两句指令更新数据库

更新数据库

之后打开admin.py,在后台注册我们刚写的两个model

tool_03.admin

再之后,打开后台,如果看到了Blog和Comment,说明成功

后台

然后,在main/views.py里面(注意,是主页!)修改响应函数

注意这个render

在修改完后端响应函数之后,别忘了修改你的主页

basemain.html

之后你可以随便在后台里添加几个blog和comment,然后访问主页,你会看到

WTF??

注意看,Invalid filter:‘datetime’,我们错在哪里了?没错,就是这个{{ blog.created_at|datetime }},你写了datetime,却没有注册,这怎么可能跑得通呢?所以我们要写这个filter:在main文件夹里新建一个叫templatetags的文件夹,并加入如下几个文件(不要加入__pycache__文件夹,否则出错)

别忘了__init__.py

之后打开poll_extras.py,写如下内容

一个字都不要错

注意那句delta = int(time.time() -t),如果你什么输入数据也没有(比如引用了引用了不存在的blog),是会在这里报错的。但是请不要怀疑,我们的代码没问题,你只是没输入数据。接下来,我们在主页里加上一句

又是Django模板语句

有了这句话,我们刚才写的datetime就能发挥作用了,不会再报错了,这次再打开主页,我们就会看到

我又偷偷修改主页了233

看到了吧,我们的帖子已经出现了。

BVDNM,建网站原来如此简单

自强学堂 源代码下载:https://github.com/twz915/zqxt
服务承诺:2017年03月11日到12日出现了网站不可访问,不少同学发来了邮件关心,感谢大家对自强堂Django教程的支持与厚爱。自强学堂不会关闭,我向大家承诺,我依然会坚持每天答疑,看邮件回复邮件,服务器费用已经缴纳三年,后期会努力提高服务稳定性。我也还至少会再坚持做三年,直到2020年03月12日,我愿意坚持做这件事,是因为我认为这很有意义,2015年劳动节开始写这个教程的时候,我没有想到如今,每天会有5000人来自强学堂看Django教程,我希望能帮助到更多的人。—— 2017年03月12日于北京深夜 涂伟忠