美文网首页
1.2 创建你的第一个项目

1.2 创建你的第一个项目

作者: gznb | 来源:发表于2020-07-18 18:30 被阅读0次

1. 创建你的第一个项目

我们第一个 Django 项目是创建一个完成的 Blog 项目。 Django 提供了一个命令允许你创建一个初始化项目文件目录。在你自己的 shell 运行下面的命令。

django-admin startproject mysite

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

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

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


Snipaste_2020-07-15_10-48-01.jpg

这些文件如下:

  • manage.py: 这是一个在你的项目被用于交互的命令行程序,它是对 django-admin.py 工具的简单包装,你不用去写这个文件。
  • mysite/: 这是你的项目目录,它包含下面的这些文件:
    • __init__.py: 一个空文件,告诉 pythonmysite 目录作为 一个 Python 模块去对待。
    • asgi.py: 这是把你的项目作为 ASGI 去运行的一些配置,异步 web 服务器和应用程序的 新兴 python 标准。
    • settings.py: 包含你项目的设置和配置,并包含了初始默认设置。
    • urls.py: 这是你路由模式所在的位置。这里定义的每个 URL 都映射到一个视图。
    • wsgi.py: 这是把你的项目作为 WSGI 应用程序去运行的配置。

这个生成的项目有关的 setting.py 文件包含了如何去使用 SQLite3 数据库的基本配置,以及用一个名称为 INSTALLED_APPS 的列表,默认在你的项目中包含了常见的Django 应用程序。我们将在后面的 项目配置部分 介绍这些应用程序。

Django 应用程序包含了一个用于定于数据模型的 models.py 文件,每一个数据模型都映射了一个数据库表。在完整的项目中,你需要为在 INSTALLED_APPS 应用程序列表中的所有 数据模型 创建一个相关的表。Django 包含了一个用于管理这些的 数据迁移系统。

打开 shell 运行下面的命令:

cd mysite
python manage.py migrate

你可以看来类似下面的这些输出:


Snipaste_2020-07-15_11-37-29.jpg

前面几行是 Django 应用程序的数据库迁移,通过数据库迁移,这些表在初始化应用程序的时候被创建在数据库中。你将在 创建和应用迁移部分学习更多有关 migrate 的管理命令。

2. 在开发服务器中运行

Django 附带了一个轻量级的 web 服务器去快速运行你的代码,不需要花费时间配置生产服务器。在你运行DJango 的开发服务器的时候,它始终会检查你修改后的代码。然后它可能不会主要到有些部分,例如在你的项目中添加了一个新的文件,因此在这些情况下需要手动重启你的服务器。

在你的项目更目录中输入 下面的 代码,去启动开发服务器:

python manage.py runserver

你应该看到类似于下面的这些:


Snipaste_2020-07-15_12-25-37.jpg

现在 在你的 浏览器中打开 http://127.0.0.1:8000/, 你应该看到一个页面,

说明项目已成功运行,如下面屏幕快照所示(Django开发服务器默认页面):


Snipaste_2020-07-15_13-40-43.jpg

上面的屏幕快照表示 Django 正在运行,如果你看一下你的控制台,可以看到通过你的浏览器执行了一个 GET 请求。

[15/Jul/2020 13:49:46] "GET / HTTP/1.1" 200 16351

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

你可以让 Django 开发服务器运行在自定义的主机和端口上,或者告诉Django加载特定的 settings 文件,如下:

python manage.py runserver 127.0.0.1:8001 --settings=mysite.settings

(译者注: 原文是python manage. py runserver 127. 0. 0. 1: 8001 \--settings=mysite. settings, 但是有 '\' 这个符号可能会报错,所以我去掉了。)

当你需要为多个环境处理不一样的配置时,你可以为每一个环境创建一个不同的配置文件。

记住这个内置的Web服务器仅仅是为了在开发中使用的,不适合在生产环境中使用。在生产环境中部署 Django ,你应该把它作为一个 WSGI 应用程序在 Web 服务器中运行,例如 Apache, Gunicorn, 或者是作为 uWSGI, 再或者是 作为 ASGI 应用程序运行再 Uvicorn, Daphne. 你可以在这个链接中发现更多有关于如何把 Django 部署到不同的web 服务器中的信息。

第 14 章 上线 ,解释如何为你的 Django 项目设置一个生产环境。

1.2.2 项目设置

让我们打开 setting.py 文件,并且看看有关于项目的配置。Django 在这个文件里面包含了几个设置,但是这是所有可用配置的一部分,你可以在这个链接查看所有的配置以及这些配置的默认值。

下面这些设置的值如下所示:

  • DEBUG 是一个 Boolean 类型,来控制项目 debug 模式的打开和关闭。如何它的值为 True, Django 将显示在你的应用程序中没有捕捉到的详细错误信息,当你 移动到生产环境中的是时候,记得一定要把它设置为 Flase。 永远不要在你的生产环境中把DEBUG打开,不然你会暴露很多与项目有关的敏感数据。

  • ALLOWED_HOSTS 在 debug模式打开的情况下或者是正在运行测试的时候,不会起作用。一旦你移动到 生产环境的时候,把 DEBUG 设置为 False 的时候,你就需要把 将要访问你的 Django 站点的 域/主机 设置在这个里面。

  • INSTALLED_APPS 是一个对所有将要编辑的项目的设置。这个设置告诉Django将这些应用程序在站点中激活。Django 中包含下面这些默认应用程序:

    • django.contrib.admin: 一个管理员站点
    • django.contrib.auth: 一个 验证框架。
    • django.contrib.contentypes: 一个处理上下文类型的框架。
    • django.contrib.sessions: 一个 session 框架。
    • django.contrib.messages: 一个 消息框架。
    • django.contrib.staticfiles: 一个管理静态文件的框架。
  • MIDEELEWARE 是一个要被执行的中间件列表。

  • ROOT_URLCONF 表明定义应用程序的根URL模式的 Python 模块。

  • DATABASES 是一个字典,它包含所有在项目中使用的数据库的配置。必须始终有一个默认的数据库。这里默认的是使用 SQLite3 数据库的配置。

  • LANGUAGE_CODE 在 Django 站点中定义默认的语言编码。

  • USE_TZ 告诉 Django 激活或者禁止时区支持。Django 支持 地区时区监测。你使用 startproject 创建一个新的项目的时候,这个设置被设置为 True

如果你现在对这里见到的东西不是特别理解,请不要担心,你将在后面的章节中学习到不同Django配置。

3. 项目和应用程序

在这本书中,你将一遍又一遍遇到 项目应用程序这两个概念。在Django中,一个 项目 被认为是一个带有一些设置的 django installation(译者注:不知道咋翻译这个概念,索性不翻译)。一个 应用程序 是一组 模型,视图,模板,URLs。应用程序与框架交互可以提供一些特殊的功能,并可在各种项目中重用。你可以把你的网站想象成一个项目,里面包含了各种各样的应用程序,例如 blog, wiki, 或者 论坛, 这些应用程序也还可以被用在其他项目中。

下面的图展示了 Django 项目的结构:


Snipaste_2020-07-15_16-02-15.jpg

4. 创建一个应用程序

现在让我们来创建你的第一个Django 应用程序,你将重头开始创建一个blog 应用程序。在这个应用的根目录下,运行下面的命令:

python manage.py startapp blog

这将会创建一个基础的应用程序框架,像下面一样:


Snipaste_2020-07-15_16-08-44.jpg

文件说明如下所示:

  • admin.py: 在 Django 的管理员站点中注册模型,使用这个站点是可选的。
  • apps.py: 这里包含一些对于 blog 应用程序的主要配置。
  • migrations: 关于应用程序数据迁移的文件会放在这个目录中,Django 会去追踪你模型的改变并且同步到相应的数据库。
  • models.py: 包含应用程序中的数据模型,所有的 Django 应用程序都需要有这个 models.py 文件,但是这个文件可以保留为空。
  • tests.py: 可以把你这个应用程序的测试放在这里。
  • views.py: 把这个应用程序的逻辑放在这里,所有的视图都接受一个 HTTP 请求,然后处理它,最后返回一个 response 响应。

相关文章

网友评论

      本文标题:1.2 创建你的第一个项目

      本文链接:https://www.haomeiwen.com/subject/xeyfkktx.html