请在应用设置的应用域名字段添加应用的所有域和子域。_《Django 2 by Example》翻译 第一章 创建一个博客应用 #2...

写在前面,本系列是对《Django 2 by Example》的翻译,也会对某些比较难理解的地方做一些解释。需要英文版原书的可以去这里获取推荐一本 Django 实战书籍《Django 2 by Example》。本文承接上一篇《Django 2 by Example》翻译 第一章 创建一个博客应用 #1。

创建您的第一个项目

我们的第一个 Django 项目将构建一个完整的博客。Django 提供了一个命令,允许您创建初始的项目文件结构。从您的 shell 运行以下命令:

f070c2040b2a6b4fc5819b4170a10921.png

这将创建一个名为 mysite 的 Django 项目。

这里要避免使用内置 Python 或 Django 模块来命名项目,以避免冲突。

让我们看看生成的项目结构:

0436e2f0f71f77fbf528a7fa0ff5dd73.png

这些文件解释如下:

  • manage.py:这是一个命令行实用程序,用于与项目交互。它是 django-admin.py 工具的一个小的包装。您不需要编辑这个文件。(在创建 app、数据库迁移都需要用到它,后面用多了自然就懂了)
  • mysite/:这是您的项目目录,它由以下文件组成:
  1. __init__.py:一个空文件,它告诉 Python 将 mysite 目录视为 Python 模块。(简单来说就是让你可以在其他目录使用 from 或者 import 导入mysite 目录下的 Python 模块)
  2. settings.py:这指定项目的设置和配置,并包含初始默认设置。
  3. urls.py:这是您的URL模式所在的位置。这里定义的每个 URL 都映射到一个视图。
  4. wsgi.py:这是将项目作为 Web 服务器网关接口(WSGI)应用程序运行的配置。(开发阶段,你基本上用不到)

生成的 settings.py 文件包含项目设置,包括一个使用 SQLite3 数据库的基本配置和一个名为INSTALLED_APPS 的列表,其中包含默认情况下添加到项目中的常见 Django 应用程序。我们将在稍后的项目设置部分讨论这些应用程序。

要完成项目设置,我们需要在数据库中创建INSTALLED_APPS中列出的应用程序所需的表。打开shell并运行以下命令:

eaa56f2dc1738be328cfa745f2d5a0f8.png

您将注意到以下几行结束的输出:

7de1ea9c07d9238c315a09ffc00df11a.png

前面几行是 Django 应用的数据库迁移。通过应用迁移,可以在数据库中创建初始应用程序的表。您将在本章的创建和应用迁移一节中了解迁移管理命令。(这里告诉你的是,用 Django来做 web 开发,你基本上不要写数据库相关的 SQL 语句)

运行开发服务器

Django 附带了一个轻量级 web 服务器,可以快速运行代码,而不需要花时间配置生产服务器。当您运行 Django 开发服务器时,它会不断检查代码中的更改。它自动重新加载,使您不必在代码更改后手动重新加载它。但是,它可能没有注意到一些操作,比如向项目添加新文件,所以在这些情况下,您必须手动重启服务器。

从项目的根文件夹中输入以下命令,启动开发服务器:

bfc6b1ddc1f39336ffad019a860e6d74.png

你应该可以看到像下面这样的输出:

0343e77d39ea8033c519789782bc119c.png

现在,在浏览器中打开 http://127.0.0.1:8000/。您应该会看到一个页面,说明项目正在成功运行,如下面的屏幕截图所示:

6014ac71e87203ce638a126738c0a8ce.png

Django运行成功截图

前面的屏幕截图表明 Django 正在运行。如果查看控制台,您将看到浏览器执行的 GET 请求:

54be2ffccd0fc60403ef86b0ba811d71.png

开发服务器将在控制台中记录每个 HTTP 请求。运行开发服务器时发生的任何错误也将出现在控制台中。

您可以指定 Django 在自定义主机和端口上运行开发服务器,或者告诉它运行您的项目,加载一个不同的设置文件,如下所示:

8a90d901f32aa88b7461adab5f90a523.png

当您必须处理需要不同配置的多个环境时,可以为每个环境创建不同的设置文件。

请记住,此服务器仅用于开发,不适合生产使用。为了在生产环境中部署 Django,您应该使用真实的 web 服务器(如 Apache、Gunicorn 或 uWSGI)作为WSGI应用程序运行 Django。有关如何在不同的 web 服务器上部署 Django 的更多信息,请访问: https://docs.djangoproject.com/en/2.0/howto/deployment/wagi/.

在第十三章将解释如何为 Django 项目设置生产环境。

项目设置

让我们打开 settings.py 文件,看看项目的配置。Django 在这个文件中包含了几个设置,但这些只是所有 Django 设置的一部分。您可以在https://docs.djangoproject.com/en/2.0/ref/settings/ 中查看所有设置及其默认值。

下面的设置值得一看:

  • DEBUG 是一个布尔值,用于打开和关闭项目的调试模式。如果设置为 True,当应用程序抛出未捕获异常时,Django 将显示详细的错误页面。迁移到生产环境时,请记住必须将其设置为 False。永远不要在启用调试的情况下将站点部署到生产环境中,因为您将公开与项目相关的敏感数据。
  • ALLOWED_HOSTS 在调试模式打开或运行测试时不应用。一旦将站点迁移到生产环境并将 DEBUG 设置为 False,就必须将您的域/主机添加到该设置中,以允许它为 Django 站点提供服务。
  • INSTALLED_APPS 是一个您必须为所有项目编辑的设置。这个设置告诉 Django 哪些应用程序在这个站点上是激活的。默认情况下,Django 包含以下应用程序:
  1. django.contrib.admin:管理站点
  2. django.contrib.auth:身份验证框架
  3. django.contrib.contenttypes:处理内容类型的框架
  4. django.contrib.sessions:会话框架
  5. django.contrib.messages:消息传递框架
  6. django.contrib.staticfiles:用于管理静态文件的框架
  • MIDDLEWARE 是包含要执行的中间件的列表。
  • ROOT_URLCONF 指示定义应用程序根URL模式的Python模块。
  • DATABASES 是一个字典,包含项目中使用的所有数据库的设置。必须始终有一个默认数据库。默认配置使用SQLite3数据库。
  • LANGUAGE_CODE为这个Django站点定义了默认的语言代码。
  • USE_TZ 告诉 Django激 活/禁用时区支持。Django 支持 timezoneaware datetime。当使用 startproject 管理命令创建新项目时,将此设置设置为True。
975844ce091d8ec21ac3a9861232b866.png

补充说明怎样设置中文和中国时区

如果你不太了解上面你所看到的,不要担心。在接下来的章节中,您将学习不同的Django设置。

项目和应用程序

在本书中,您将反复遇到术语项目和应用程序。在 Django 中,项目被认为是具有某些设置的Django 装置(对应我们前面创建的 mysite,这就是一个项目,其中包含整体的设置)。应用程序是一组模型、视图、模板和 url。应用程序与框架交互,以提供一些特定的功能,并可在各种项目中重用。您可以将项目视为您的网站,其中包含多个应用程序,例如博客、wiki或论坛,其他项目也可以使用这些应用程序。

创建应用程序

现在,让我们创建第一个 Django 应用程序。我们将从头创建一个博客应用程序。在项目的根目录中运行以下命令:

fe015793cf2e77878fd8f126b8fd375c.png

这将创建应用程序的基本结构,如下所示:

e13e9f4ab2d48e91343eebfc95574277.png

这些文件解释如下:

  • admin.py:您可以在这里注册模型,以便使用 Django 管理站点将它们包含在 Django 管理站点中,Django 管理站点是可选的。
  • apps.py:这包括博客应用程序的主要配置。
  • migrations/:此目录将包含应用程序的数据库迁移。迁移允许 Django 跟踪模型更改并相应地同步数据库。
  • models.py:您的应用程序的数据模型——所有Django应用程序都需要一个models.py文件,但是这个文件可以是空的。
  • tests.py:这是您可以为应用程序添加测试的地方。
  • views.py:应用程序的逻辑在这里;每个视图接收一个HTTP请求,处理它,并返回一个响应。

写在后面,由于篇幅的原因,到这里翻译就结束了,下一篇将介绍:设计博客数据模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值