Django搭建博客记(一)

  • 这里记录一些 Django 搭建博客遇到的一些问题
  • 参考书籍为 Django by Example, 这里记录与书籍内容不包含的内容.
  • 搭建环境: 阿里云 ECS + CentOS7
  • 一开始搭建的时候使用 python2.7 搭建, 在发表中文博客时, 出现不能识别中文标题的问题, 因此换成 python3
  • 使用 python3 遇到的第一个问题是不支持 supervisor, 能够参考官方网站使用 uWSGI 和 nginx 实现网站的访问(http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html)
  • 在书中, 根据标题自动生成 slug, 但没法从中文生成 slug, 因此咱们须要从中文标题生成 slug, 解决步骤以下
    • pip install django-uuslug
    • 修改你的 Post save 方法的默认实现, 这样文章保存时就会自动填充 slug
      from django.core.urlresolvers import reverse
      from uuslug import slugify
      
      class Post(models.Model):
      	...
          def save(self, *args, **kwargs):
              self.slug = slugify(self.title)
              super(Post, self).save(*args, **kwargs)
      
  • 隐藏发表文章时的 slug 填充
    • 禁止 slug 出如今发表博客的页面上
      class Post(models.Model):
      	...
      	slug = models.SlugField(editable=False)
      
  • 本书博客例子遇到的另外一个问题就是 Post 过滤时, 没法经过发表日期的月份过滤, 即 Post.objects.filter(publish_year=2017) 能够返回你2017年的全部文章, 但 Post.objects.filter(publish_month=10) 却没法返回你发表在10月份的文章, 这里须要修改你网站的 settings.py 文件, 设置
    USE_TZ = False
    
相关文章
相关标签/搜索