[个人网站搭建]·Django增加评论功能(Python3)

[个人网站搭建]·Django增加评论功能

 

个人主页--> https://xiaosongshine.github.io/ 

个人网站搭建github地址:https://github.com/xiaosongshine/djangoWebs 

 

安装django插件

pip install django-contrib-comments

配置settings.py

INSTALLED_APP=(
    #...,
    'django_comments',
    'django.contrib.sites',
)
SITE_ID = 1

在INSTALLED_APP添加django_comments和django.contrib.sites两个应用。

在外部添加 SITE_ID=1。

django的评论库是一个站点,所以需要添加sites的应用并设置当前django工程的站点id=1

更新数据库

python manage.py migrate

配置urls.py

在 urlpatterns 中添加

path(r'^comments/', include('django_comments.urls')),

修改前端页面显示评论列表和评论提交表单

接着,修改前端页面显示评论列表和评论提交表单。这些需要使用django_comments的模版标签,在使用标签之前导入加载:

{# 导入评论库模块的模版标签 #}
{% load comments %}

评论列表可以通过django_comments的get_comment_list模版标签获取,如下代码:

评论列表

{% get_comment_list for blog as comments %} {% for comment in comments %}

#{{ comment.submit_date|date:"Y-m-d H:i"}} @ {{ comment.user_name }}:

{{ comment.comment }}

{% empty %} 暂无评论 {% endfor %}

get_comment_list模版标签的用法是for一个模版对象,as是重命名。变量得到的评论加载即可。

而评论提交表单,最主要的是提交的url和表单字段。同样也可以通过django_comments的模版标签处理,如下代码:

新的评论

{% get_comment_form for blog as blog_form %}
{% csrf_token %} {# 必须的字段 #} {{ blog_form.object_pk }} {{ blog_form.content_type }} {{ blog_form.timestamp }} {{ blog_form.site }} {{ blog_form.submit_date }} {{ blog_form.security_hash }} {# 用户名字段,这个后面会修改为登录用户评论,无需填这个 #}
{# 邮箱地址字段 #}
{# 评论内容 #}
{# 防垃圾评论 #}

{# 表单按钮 #}

 

这一步需要注意的有两点

1.{% get_comment_form for blog as blog_form %} {% get_comment_list for blog as comments %}中blog就是你的文章内容,我的主页用的是show我就改为了:

{% get_comment_form for show as blog_form %} {% get_comment_list for show as comments %}

2.其中的value="{%url 'detailblog' blog.id%}就是你要刷新的网页url,我的修改为了:

 

还有一个小技巧:可以通过{{ comments|length}}获取评论总数目,便于统计显示,我的实现:

  • {{ comments|length}}
  • ​​​​​​​

     

    重启Uwsgi和Nginx

    修改Django文件和其它配置文件之后,一定要重启Uwsgi和Nginx,不然不生效。

    Uwsgi和Nginx重启方法:

    #查看Uwsgi进程
    ps -ef|grep uwsgi 
    #用kill方法把uwsgi进程杀死,然后启动uwsgi
    killall -9 uwsgi
    #启动方法
    uwsgi -x mysite.xml
    
    #Nginx平滑重启方法
    /usr/local/nginx/sbin/nginx -s reload

     

    效果展示

    [个人网站搭建]·Django增加评论功能(Python3)_第1张图片

    Please Enjoy Yourself

    欢迎大家访问我的主页尝试一下,觉得有用的话,麻烦小小鼓励一下 ><

    个人网站搭建github地址:https://github.com/xiaosongshine/djangoWebs 欢迎访问

    参考:http://yshblog.com/blog/5

    你可能感兴趣的:([个人网站搭建]·Django增加评论功能(Python3))