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
    
相關文章
相關標籤/搜索