Django教程(2)

from Django official document;

Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。

from 编写你的第一个 Django 应用,第 1 部分.

the first Django startProject

1. create our project "mysite"

让我们看看 <span>startproject</span> 创建了些什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

这些目录和文件的用处是:

  • The outer mysite/ root directory is a container for your project. Its name doesn‘t matter to Django; you can rename it to anything you like.
  • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有 manage.py 的细节。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
  • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
  • mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django settings 。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL dispatcher 文档来获取更多关于 URL 的内容。
  • mysite/asgi.py: An entry-point for ASGI-compatible web servers to serve your project. See How to deploy with ASGI for more details.
  • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。

 Django 自带的用于开发的简易服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(比如 Apache)方面的工作,除非你已经准备好投入生产环境了。

现在是个提醒你的好时机:千万不要 将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。(我们在 Web 框架方面是专家,在 Web 服务器方面并不是。)

2. create your app

Projects vs. apps

What’s the difference between a project and an app? An app is a Web application that does something – e.g., a Weblog system, a database of public records or a small poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.

In this tutorial, we’ll create our "poll" app right next to your <span>manage.py</span> file so that it can be imported as its own top-level module.

That’ll create a directory polls, which is laid out like this:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

在mysite/setting.py里, INSTALLED_APPS里面添加新增的应用.

3. create your first view

可以在app/目录下添加urls.py,然后使用include()函数将app/urls.py添加到global 的urls.py中.

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path(‘polls/‘, include(‘polls.urls‘)),
    path(‘admin/‘, admin.site.urls),
]

我们设计 <span>include()</span> 的理念是使其可以即插即用。因为投票应用有它自己的 URLconf( <span>polls/urls.py</span> ),他们能够被放在 "/polls/" , "/fun_polls/" ,"/content/polls/",或者其他任何路径下,这个应用都能够正常工作。

4. configure your database

from 编写你的第一个 Django 应用,第 2 部分.

现在,打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。通常,这个配置文件使用 SQLite 作为默认数据库。

如果你想使用其他数据库,你需要安装合适的 database bindings ,然后改变设置文件中 <span>DATABASES</span> ‘default‘ 项目中的一些键值:

  • <span>ENGINE</span> -- 可选值有 ‘django.db.backends.sqlite3‘‘django.db.backends.postgresql‘‘django.db.backends.mysql‘,或 ‘django.db.backends.oracle‘。其它 可用后端
  • <span>NAME</span> - 数据库的名称。如果使用的是 SQLite,数据库将是你电脑上的一个文件,在这种情况下, <span>NAME</span> 应该是此文件的绝对路径,包括文件名。默认值 <span>os.path.join(BASE_DIR, <span>‘db.sqlite3‘)</span></span> 将会把数据库文件储存在项目的根目录。

如果你不使用 SQLite,则必须添加一些额外设置,比如 <span>USER</span> 、 <span>PASSWORD</span> 、 <span>HOST</span> 等等。想了解更多数据库设置方面的内容,请看文档:<span>DATABASES</span> 。

$ python manage.py migrate

The <span>migrate</span> command looks at the <span>INSTALLED_APPS</span> setting and creates any necessary database tables according to the database settings in your mysite/settings.py file and the database migrations shipped with the app (we‘ll cover those later). You‘ll see a message for each migration it applies. If you‘re interested, run the command-line client for your database and type \dt (PostgreSQL), <span>SHOW <span>TABLES;</span></span> (MariaDB, MySQL), .schema (SQLite), or <span>SELECT <span>TABLE_NAME <span>FROM <span>USER_TABLES;</span></span></span></span> (Oracle) to display the tables Django created.

5. create your model

在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型 - 也就是数据库结构设计和附加的其它元数据。

 

相关推荐