分类标签归档:Django

【置顶】DjangoBlog部署教程


本篇文章将会手把手教你如何部署DjangoBlog项目,首先介绍下我这里的基本环境,请大家仔细阅读此部分,下面的教程都会使用这些约定来介绍:

  • 系统是ubuntu 18.04 LTS
  • 假设你的域名是www.djangoblog.com
  • python虚拟环境目录在 ~/python/env
  • djangoblog源码位置在 ~/python/djangoblog
  • 登入用户server
  • 编辑器使用vim,你可以使用你喜欢的编辑器。

另外请注意,尽量不要使用root用户来部署,如果要使用root用户的话,需要使collectedstatic目录所有用户都有读权限。

准备工作

升级系统...

Read more

使用Django模版生成树状结构


我们经常会有这样的需求,比如评论功能,每个评论都有可能会有自己的子评论,如果在界面只展示成一列的话非常不美观,也不能体现出他们的层级关系。那么我们今天就来看看如何使用Django的模版来生成树状结构,以本站为例,效果如下图所示:

那么我们要怎么实现呢?首先先看看评论实体的定义,如下所示:

class Comment(models.Model):
    body = models.TextField('正文', max_length=300)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose...

Read more

为你的Django项目保驾护航


保证你的站点安全至关重要,如果你的站点被入侵,后果可能不仅仅是你的服务器被黑,更严重的可能是你的用户隐私数据被盗,造成严重的后果。 Django框架现在已经非常成熟,大多数常见的安全问题框架本身都有提供解决方案,下面大致介绍下一些常见的防御措施。

Https

现在的网站https基本都是标配了吧,如果你的网站还没有支持https,那么就要考虑是不是需要尽快为你的网站加上https,这里推荐使用免费的Let's Encrypt。本站使用的就是他们颁发的证书。可以参考该文章:
申请Let's Encrypt通配符证书 有大致的介绍。 如果你的站点已经支持了https访问的话,建议在se...

Read more

Django 2.0升级小记


备受期待的django 2.0已经发布了,最大的一个变化就是不再支持python2.x版本了,另外还有在使用方面有了一些变化,下面就介绍下我在升级的时候遇到的错误。

from django.core.urlresolvers import reverse

变成了

from django.urls import reverse
  • settings.py文件,MIDDLEWARE_CLASSES更改成了MIDDLEWARE

  • django.shortcuts.render_to_response()方法已经被弃用了,现在使用django.shortcuts.ren...

Read more

本站支持微信公众号了


在最新释出的v4.0版本中,本站集成了微信公众号的功能,现在可以使用微信公众号来管理你的vps了。
默认情况下是图灵机器人自动回复的,输入admin之后开始验证密码,通过后进入命令模式,可以通过在后台配置一些命令来在这里执行并返回结果。

当然,也集成了一些基本的博客文章搜索等功能,后续会集成一些常用等api进来。 欢迎大家扫码关注本站。 qrcode

Read more

在Django中使用缓存


Django 是动态网站,一般来说需要实时地生成访问的网页,展示给访问者,这样,内容可以随时变化,但是从数据库读多次把所需要的数据取出来,要比从内存或者硬盘等一次读出来 付出的成本大很多。而使用缓存的话,可以将数据保存在缓存中,下次访问的时候直接从缓存中获得数据,而不用去请求后端数据库,这样服务器可以很快的响应请求,从而提高加载速度。下面简单介绍下Django中的缓存系统。

缓存配置

Django支持多种缓存,例如本地文件缓存,数据库缓存,memcache,locmem等,下面分别简单介绍下:

文件缓存

这个很简单,就是将数据缓存在指定的目录中。配置如下:

CACHES = {
    ...

Read more