Django 博客开发教程 1 - 搭建开发环境

本教程使用的开发环境

本教程写作时开发环境的系统平台为 Windows 10 (64 位),Python 版本为 3.5.2 (64 位),Django 版本为 1.10.6。

建议尽可能地与教程的开发环境保持一致(尤其是 Python 与 Django 版本),避免不必要的麻烦。推荐的 Python 版本为 Python 3.4 或以上,Django 版本号必须为 Django 1.10.x。

注意:本教程将尽量保证兼容 Python 2,但不会在 Python 2 环境下做测试。如果你因为某种原因必须使用 Python 2,你可以在 Python 2 环境下尝试运行教程里的代码,应该能够顺利运行。

安装 Python

Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可。

安装完后检测 Python 是否可以正常运行。在命令行输入 python -v ,如果输出了 Python 的版本号,说明 Python 已安装成功。

C:\WINDOWS\system32>python -V
Python 3.5.2

如果提示命令未找到,而你又确定已经安装了 Python,多半是因为没有把 Python 添加到环境变量。可搜索如何把 Python 添加到环境变量的相关教程,将安装的Python 添加到环境变量即可。

使用虚拟环境 Virtualenv

强烈推荐在 Virtualenv 下进行 Django 的开发。Virtualenv 是一个 Python 工具,使用它可以创建一个独立的 Python 环境。

为什么要使用 Virtualenv 呢?举个例子,假设你已经在系统中安装了 Python,并且在阅读此教程前你已经进行过一些 Django 的学习,但那时候安装的 Django 还是 1.8 版本。我们教程使用的是最新版的 Django 1.10.6 版本,你可能不愿意删除掉旧版的 Django 1.8,因为那可能导致你以前的项目无法运行。既想让原本项目在 Django 1.8 环境下运行,又想再安装 Django 1.10.6 来开启本教程的项目,怎么办呢?使用 Virtualenv 就能够完美解决这个问题。

Virtualenv 帮我们从系统的 Python 环境中克隆一个全新的 Python 环境出来,这个环境独立于原来的 Python 环境。我们可以在这个新克隆的环境下安装 Django 1.10.6,并且在这个新环境下运行我们的新项目。

Virtualenv 的使用非常简单,首先安装 Virtualenv,打开命令行工具,输入 pip install virtualenv 命令即可安装 Virtualenv。

C:\WINDOWS\system32>pip install virtualenv

安装成功后就可以开始创建虚拟环境,指定一个你喜欢的目录,Virtualenv 会把这个新的虚拟环境装到你指定目录下。例如我把它装到 C:\Users\yangxg\Envs 目录下,并将虚拟环境命名为 blogproject_env(也可以取任何你喜欢的名字)。在命令栏运行如下命令:

C:\WINDOWS\system32>virtualenv C:\Users\yangxg\Envs\blogproject_env

虚拟环境已经创建好了,我们需要激活这个环境,运行 blogproject_env\Scripts\ 目录下的 activate 程序激活它:

C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate
(blogproject_env) C:\WINDOWS\system32>

注意 Linux 下没有 Scripts\ 这个目录,取而代之的是 bin/ 目录。且激活命令为:

$ source blogproject_env/bin/activate

可以看到命令提示符前面多了 (blogproject_env),说明我们已经成功激活了虚拟环境,接下来就可以开始安装 Django 了。

安装 Django

Django 的官方文档对 如何安装 Django 给出了详细且明确的指导,不过我们目前用不上这些,只需使用 pip 命令就可以解决问题。

(blogproject_env) C:\WINDOWS\system32>pip install django==1.10.6

我们用 django==1.10.6 来安装指定的 Django 版本以保证和教程中的一致。如果直接 pip install django 的话有可能安装最新的 Django 发行版本,而不是 Django 1.10.6。

注意命名提示符前的 (blogproject_env) 以确保你始终处在虚拟环境中,如果不小心退出了虚拟环境,先按上面的步骤重新进入再安装 Django。

测试一下安装是否成功,先在命令行输入 python 以打开 Python 自带的命令栏,然后输入 import django,如果没有报错就说明 Django 安装成功。通过运行 print(django.get_version()) 打印出 Django 的版本号,确保安装了正确版本的 Django。

(blogproject_env) C:\WINDOWS\system32>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print(django.get_version())
1.10.6
>>>

建立 Django 工程

万事已经具备了,让我们来建立 Django 项目工程。

Django 工程(Project)是我们项目代码的容器,例如我们博客项目中所有的代码(包括 Django 为我们自动生成的以及我们自己写的)都包含在这个工程里。其实说通俗一点就是用一个文件夹把一系列 Python 代码文件和 Django 配置文件包裹起来,这个文件夹就可以看做一个 Django 工程。我们不必亲自动手新建这个文件夹和代码文件,Django 的内置命令已经帮我们做了这些事情。例如我把博客工程的代码放在 C:\Users\yangxg\Workspace\ ,工程名我把它叫做 blogproject 。

首先在命令行进入到 C:\Users\yangxg\Workspace 这个目录(如果你还停留在 Python 的命令栏里,先多按几次 Ctrl + c 键跳出来):

(blogproject_env) C:\WINDOWS\system32>cd C:\Users\yangxg\Workspace

然后运行如下命令创建工程:

(blogproject_env) C:\Users\yangxg\Workspace>django-admin startproject blogproject

再次申明一定要在虚拟环境下运行这些命令,虚拟环境的标志就是命令提示符前有 (blogproject_env) 这样的标记。以后几乎所有和 Django 有关的命令都是在虚拟环境下运行,因此在运行前一定确保先开启了虚拟环境。

进入工程所在目录 C:\Users\yangxg\Workspace\(你可能设置在其它路径),会发现多了一个 blogproject\ 的目录,其内部的文件结构如下:

blogproject\
    manage.py
    blogproject\
        __init__.py
        settings.py
        urls.py
        wsgi.py

最顶层的 blogproject\ 目录是我们刚刚指定的工程目录。blogproject\ 目录下面有一个 manage.py 文件,manage 是管理的意思,顾名思义 manage.py 就是 Django 为我们生成的管理这个项目的 Python 脚本文件,以后用到时会再次介绍。与 manage.py 同级的还有一个 blogproject\ 的目录,这里面存放了一些 Django 的配置文件,例如 settings.py、urls.py 等等,以后用到时会详细介绍。

Hello Django

网站需要运行在一个 Web 服务器上,Django 已经为我们提供了一个用于本地开发的 Web 服务器。在命令行工具里进入到 manage.py 所在目录,即最外层的 blogproject\ 目录下。运行 python manage.py runserver 命令就可以在本机上开启一个 Web 服务器:

(blogproject_env) C:\Users\yangxg\Workspace>cd C:\Users\yangxg\Workspace\blogproject

(blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 21, 2016 - 20:23:07
Django version 1.10.4, using settings 'blogproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

看到这样的信息表明我们的服务器开启成功。

在浏览器输入 http://127.0.0.1:8000/ ,看到如下的页面提示信息:

It worked! Django 工作了!

注意:如果在浏览器输入 http://127.0.0.1:8000/ 后显示无法访问该网站,请检查是不是浏览器代理的问题。比如开启了某些 VPN 代理服务等,将它们全部关闭即可。

这是 manage.py 的第一个用法,运行它的 runserver 命令开启本地开发服务器,以后我们还会遇到更多的命令。

命令栏工具下按 Ctrl + c 可以退出开发服务器(按一次没用的话连续多按几次)。重新开启则再次运行 python manage.py runserver

Django 默认的语言是英语,所以显示给我们的欢迎页面是英文的。我们在 Django 的配置文件里稍作修改,让它支持中文。用任何一个文本编辑器打开 settings.py 文件,找到如下的两行代码:

blogproject/blogproject/settings.py

## 其它配置代码...

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'

## 其它配置代码...

LANGUAGE_CODE 的值改为 zh-hansTIME_ZONE 的值改为 Asia/Shanghai

blogproject/blogproject/settings.py

## 其它配置代码...

# 把英文改为中文
LANGUAGE_CODE = 'zh-hans'

# 把国际时区改为中国时区
TIME_ZONE = 'Asia/Shanghai'

## 其它配置代码...

保存更改后关闭 settings.py 文件。

再次运行开发服务器,并在浏览器打开 http://127.0.0.1:8000/,可以看到 Django 已经支持中文了。

一切准备就绪,开始进入我们的 Django 博客开发之旅吧!

总结

本章节的代码位于:Step1: build development environment

如果遇到问题,请通过下面的方式寻求帮助。

更多Django 教程,请访问 追梦人物的博客

时间: 2025-01-02 14:44:40

Django 博客开发教程 1 - 搭建开发环境的相关文章

Django 博客开发教程 0 - 前言

Django 是使用 Python 编写的一个开源 Web 框架,可以用它来快速搭建一个高性能的网站. Django makes it easier to build better Web apps more quickly and with less code. Django 让你以更快的速度.更少的代码.更轻松的方式搭建更好的 Web 应用. 本教程将带你使用 Django 快速开发属于自己的博客网站. 教程特点 免费.中文.零基础,完整的项目,基于最新版 Django 1.10 和 Pyt

Django 博客开发教程 6 - 真正的 Django 博客首页视图

在此之前我们已经编写了 Blog 的首页视图,并且配置了 URL 和模板,让 Django 能够正确地处理 HTTP 请求并返回合适的 HTTP 响应.不过我们仅仅在首页返回了一句话:欢迎访问我的博客.这是个 Hello World 级别的视图函数,我们需要编写真正的首页视图函数,当用户访问我们的博客首页时,他将看到我们发表的博客文章列表,就像 演示项目 里展示的这样. 首页视图函数 上一节我们阐明了 Django 的开发流程.即首先配置 URL,把 URL 和相应的视图函数绑定,一般写在 ur

Django 博客开发教程 5 - Django 博客首页视图

Django 处理 HTTP 请求 Web 应用的交互过程其实就是 HTTP 请求与响应的过程.无论是在 PC 端还是移动端,我们通常使用浏览器来上网,上网流程大致来说是这样的: 我们打开浏览器,在地址栏输入想访问的网址,比如 http://zmrenwu.com/(当然你也可能从收藏夹里直接打开网站,但本质上都是一样的). 浏览器知道我们想要访问哪个网址后,它在后台帮我们做了很多事情.主要就是把我们的访问意图包装成一个 HTTP 请求,发给我们想要访问的网址所对应的服务器.通俗点说就是浏览器帮

Django 博客开发教程 7 - 在 Django Admin 后台发布文章

在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 Admin 后台来发布我们的博客文章. 创建 Admin 后台管理员账户 要想进入Django Admin 后台,首先需要创建一个超级管理员账户.我们在 让 Django 完成翻译:迁移数据库 中已经创建了一个后台账户,但如果你没有按照前面的步骤创建账户的话,可以运行 python manage.

Django 博客开发教程 13 - 已知小问题修正

在模型中指定排序 为了让文章(Post)按发布时间逆序排列,即最新发表的文章排在文章列表的最前面,我们对返回的文章列表进行了排序,即各个视图函数中都有类似于 Post.objects.all().order_by('-created_time') 这样的代码,这导致了很多重复.因为只要是返回的文章列表,基本都是逆序排列的,因此我们可以在 Post 模型中指定 Post 的自然排序方式. Django 允许我们在 models.Model 的子类里定义一个 Meta 的内部类,这个内部类通过指定一

Django 博客开发教程 15 - 使用 Fabric 自动化部署

在 使用 Nginx 和 Gunicorn 部署 Django 博客 中,我们通过手工方式将代码部署到了服务器.整个过程涉及到十几条命令,输了 N 个字符.一旦我们本地的代码有更新,整个过程又得重复来一遍,这将变得非常繁琐. 使用 Fabric 可以在服务器中自动执行命令.因为整个代码部署过程都是相同的,只要我们用 Fabric 写好部署脚本,以后就可以通过运行脚本自动完成部署了. 安装 Fabric Fabric 目前仅支持 Python2,如果你的系统中只有 Python3 版本,请先安装一

Django 博客开发教程 3 - 创建 Django 博客的数据库模型

设计博客的数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把写好的文章永久地保存在数据库里,当用户访问我们的博客时,Django 就去数据库里把这些数据取出来展现给用户. 博客的文章应该含有标题.正文.作者.发表时间等数据.一个更加现代化的博客文章还希望它有分类.标签.评论等.为了更好地存储这些数据,我们需要合理地组织数据库的表结构. 我们的博客初级版本主要包含博客文章,文章会有分类以及标签.一篇文章只能有一

Django 博客开发教程 2 - 建立 Django 博客应用

建立博客应用 我们已经建立了 Django 博客的项目工程,并且成功地运行了它.不过到目前为止这一切都还只是 Django 为我们创建的项目初始内容,Django 不可能为我们初始化生成博客代码,这些功能性代码都得由我们自己编写. Django 鼓励我们把自己编写的代码组织到应用(Application)里,并且最好是一个应用只提供一种功能.例如我们要开发的 Django 博客,相关的代码都放在 blog 这个应用里.其实应用也没什么复杂的,不过是把功能相关的代码组织到一个文件夹里,这个文件夹就

在GitHub Pages上使用Pelican搭建博客的教程_python

Pelican 介绍 首先看看 Pelican 的一些主要特性:     Python实现,开放源码     输出静态页面,方便托管     支持主题,采用Jajin2模板引擎     支持代码语法高亮     支持reStructuredText.Markdown.AsciiDoc格式     支持Disqus评论     支持Atom和RSS输出 这些特性都是大爱,完全满足我对博客系统的基本需求,再配合免费无限制的GitHub Pages,一切近乎完美了.安装 Pelican 开始前请自行安