你的第一个Django 项目 !

本章的部分内容基于 Geek Girls Carrots (https://github.com/ggcarrots/django-carrots) 的教程。

本章的部分是基于知识共享署名-4.0 国际许可协议许可的 django marcador 教程。 Django marcador 教程的版权由Markus Zapke-Gründemann 持有。

我们将要创建一个简单的博客 !

第一步是创建一个新的 Django 项目。 首先,我们需要运行一些由 Django 提供的脚本,为我们即将开始的项目建立主要骨架。 它会生成一系列的文件夹和文件,在后面的项目中我们会需要修改和使用到它们。

某些名称的文件和目录在 Django 起着至关重要的作用。 你不应该重命名我们将要创建的文件。 将它们移动到一个不同的地方也不是一个好主意。 Django 需要固定的系统结构,以便 Django 能够找到重要的东西。

记住在虚拟环境中运行的一切。 如果您没有看到您的控制台中的前缀 (myvenv),您需要激活您的虚拟环境。 我们在 Django 安装这一节内的 在虚拟环境下工作 部分中解释过了。 在windows下面运行命令:myvenv\Scripts\activate,在苹果或linnux环境下运行命令:source myvenv/bin/activate

在苹果或Linux系统下,你需要运行下面的命令,记得不要漏掉命令后面的小点(.): (myvenv) ~/djangogirls$ django-admin startproject mysite .

(myvenv) ~/djangogirls$ django-admin startproject mysite .

在windows环境下也不要忘了下面命令最后的小点。

(myvenv) C:\Users\Name\djangogirls> django-admin startproject mysite .

此时,符号"."很重要,它将告诉脚本程序自动安装Django到你当前选择的目录中(所以这个“.”是告诉脚本执行时的一种参考点)

注意:当敲入前面命令时,记住你是从 django-admindjango-admin.py开始。 而命令串前面的(myvenv) ~/djangogirls$(myvenv) C:\Users\Name\djangogirls>则是由系统提示用户输入命令的光标位置,这部分不用用户输入。

django-admin.py是一个脚本,将自动为您创建目录和文件。前面的命令正确的话,你现在就应该有一个目录结构,看起来像下面这样:

djangogirls
├───manage.py
└───mysite
        settings.py
        urls.py
        wsgi.py
        __init__.py
它是一个Django的项目文件夹,为即将开始的项目准备好了必要的资源文件和文件夹

manage.py 是一个帮助管理站点的脚本。在它的帮助下我们将能够在我们的计算机上启动一个 web 服务器,而无需安装任何东西。

settings.py 文件包含的您的网站的配置数据。

还记得当我们谈到一名邮差在决定何处交付一封信时的例子吗?urls.py 文件包含urlresolver所需的模型的列表。.

现在让我们忽略其他文件, 现在我们不会改变它们。要记住的唯一一点是不要不小心删除他们!

更改设置

让我们在 mysite/settings.py 中进行一些更改。使用您前面安装了的代码编辑器打开文件。

在我们的站点上有正确的时间是非常不错的。 访问wikipedia timezones list制你所在地区的时区 (TZ). (eg. Europe/Berlin )

然后在 settings.py文件中, 找到包含`TIME_ZONE字段的这行,并将时区改为你所在地区的时区。即:

python
TIME_ZONE = 'Europe/Berlin'
`

适当的修改"Europe/Berlin" ps:中国大陆地区可修改为 Asia/Shanghai

我们还需要添加 (我们会找出在教程后面所提到的静态文件和 CSS文件) 静态文件的路径。 我们下拉到文件的最底部, 就是在STATIC_URL 条目的下面。添加新的一行内容为 STATIC_ROOT:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

设置数据库

有很多的不同的数据库软件,可以用来存储你的网站数据。我们将使用默认的那个, sqlite3.

这已经在您的 mysite/settings.py 文件中设置了:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

若要为我们的博客创建一个数据库,,让我们运行以下命令在控制台中: python manage.py migrate (我们需要djangogirls 目录中包含 manage.py 文件)。 如果一切顺利,您应该看到这样:

(myvenv) ~/djangogirls$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: messages, staticfiles
  Apply all migrations: contenttypes, sessions, admin, auth
Synchronizing apps without migrations:
   Creating tables...
      Running deferred SQL...
   Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK

我们完成了 !现在去启动网站服务器,看看是否我们的网站正在工作!

你必须要进入包含manage.py 文件的目录 (djangogirls 目录)。 在控制台中,我们可以通过运行 python manage.py runserver 开启 web 服务器:

(myvenv) ~/djangogirls$ python manage.py runserver

如果你在Windows系统遇到UnicodeDecodeError这个错误,用这个命令来代替

(myvenv) ~/djangogirls$ python manage.py runserver 0:8000

现在,你需要做的就是检测你的站点的服务器是否已经在运行了。打开你的浏览器(火狐,Chrome,Safari,IE 或者其他你惯用的浏览器)输入这个网址:

http://127.0.0.1:8000/

Web服务器将接管你的命令行提示符,直到我们停止它。 为了尝试更多命令,我们应该同时打开一个新的终端,并激活虚拟环境。 想要停止web服务器,我们应该切换到刚才在运行程序的窗口,并且按下 CTRL+C - 同时按下CTRL键和字母C键(如果你的操作系统是windows,那么应当按下 Ctrl+Break)。

祝贺你 !你已经创建您的第一个网站,并使用 web 服务器运行它!这超级赞吧?

它工作了!

准备好下一步了吗?现在来创建一些内容 !