BVDN-8 论坛功能
我们从零开始至今,一直在完善BVDN这些工具本身,比如环境搭建,版本匹配,用户账户配置这些,并没有真正的用BVDN工具去实现一些我们想做的事。不过正所谓工欲善其事,必先利其器,到现在为止,我们的前期准备工作算是彻底做完了。从今天开始我们要正式用BVDN去做事了٩(๑òωó๑)۶
论坛
贴吧是最简单最容易实现的网站功能,我们就先做这个吧。
其实开发所有的功能,大概都是这么一个顺序
首先我们startapp tool_03,然后建立帖子和评论的模型如下
![](https://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-19a32683f66d3921.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
注意,那两个created_at的默认值不要写很小的数字,要写跟我这个差不多的数,这个数是从1970年1月1日至今的秒数,如果胡乱填的话,会引起很莫名其妙的错误,要注意!
然后用python manage.py makemigrations/migrate 两句指令更新数据库
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-7823cc08cf93b534.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/681)
之后打开admin.py,在后台注册我们刚写的两个model
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-bfd699d83bcc3c1e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/607)
再之后,打开后台,如果看到了Blog和Comment,说明成功
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-81e69353fc82fec4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
然后,在main/views.py里面(注意,是主页!)修改响应函数
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-5800623bee910e71.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
在修改完后端响应函数之后,别忘了修改你的主页
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-6431488f45a3a311.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
之后你可以随便在后台里添加几个blog和comment,然后访问主页,你会看到
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-b107449a1b47cbb3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
注意看,Invalid filter:‘datetime’,我们错在哪里了?没错,就是这个{{ blog.created_at|datetime }},你写了datetime,却没有注册,这怎么可能跑得通呢?所以我们要写这个filter:在main文件夹里新建一个叫templatetags的文件夹,并加入如下几个文件(不要加入__pycache__文件夹,否则出错)
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-67602a8e5e739062.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/479)
之后打开poll_extras.py,写如下内容
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-96cf31a3f35f51ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
注意那句delta = int(time.time() -t),如果你什么输入数据也没有(比如引用了引用了不存在的blog),是会在这里报错的。但是请不要怀疑,我们的代码没问题,你只是没输入数据。接下来,我们在主页里加上一句
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-1454e31b3a5d11bf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
有了这句话,我们刚才写的datetime就能发挥作用了,不会再报错了,这次再打开主页,我们就会看到
![](http://zqxt.oss-cn-beijing.aliyuncs.com/upload_images/7158703-df132622eee055f9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
看到了吧,我们的帖子已经出现了。
BVDNM,建网站原来如此简单