Django - 创建一个项目

  • 简述

    现在我们已经安装了 Django,让我们开始使用它。在 Django 中,您要创建的每个 Web 应用程序都称为一个项目;一个项目是应用程序的总和。应用程序是一组依赖于 MVT 模式的代码文件。例如,假设我们要建立一个网站,网站是我们的项目,论坛、新闻、联系引擎是应用程序。这种结构使得在项目之间移动应用程序变得更加容易,因为每个应用程序都是独立的。
  • 创建项目

    无论您使用的是 Windows 还是 Linux,只需获取终端或cmd提示并导航到您希望创建项目的位置,然后使用此代码 -
    
    $ django-admin startproject myproject
    
    这将创建一个具有以下结构的“myproject”文件夹 -
    
    myproject/
       manage.py
       myproject/
          __init__.py
          settings.py
          urls.py
          wsgi.py
    
  • 项目结构

    “myproject”文件夹只是您的项目容器,它实际上包含两个元素 -
    • manage.py- 该文件是您的项目本地 django-admin 的一种,用于通过命令行与您的项目进行交互(启动开发服务器,同步数据库...)。要获得可通过 manage.py 访问的完整命令列表,您可以使用代码 -
    
    $ python manage.py help
    
    • The “myproject” subfolder− 此文件夹是您项目的实际 python 包。它包含四个文件 -
      • __init__.py− 仅对于python,将此文件夹视为包。
      • settings.py− 顾名思义,您的项目设置。
      • urls.py− 您项目的所有链接和要调用的函数。您项目的一种 ToC。
      • wsgi.py− 如果您需要通过 WSGI 部署项目。
  • 设置您的项目

    您的项目设置在子文件夹 myproject/settings.py 中。以下是您可能需要设置的一些重要选项 -
    
    DEBUG = True
    
    此选项可让您设置项目是否处于调试模式。调试模式可让您获得有关项目错误的更多信息。对于实时项目,切勿将其设置为“真”。但是,如果您希望 Django 轻型服务器提供静态文件,则必须将其设置为“True”。仅在开发模式下执行。
    
    DATABASES = {
       'default': {
          'ENGINE': 'django.db.backends.sqlite3',
          'NAME': 'database.sql',
          'USER': '',
          'PASSWORD': '',
          'HOST': '',
          'PORT': '',
       }
    }
    
    数据库在“数据库”字典中设置。上面的例子是针对 SQLite 引擎的。如前所述,Django 还支持 -
    • MySQL (django.db.backends.mysql)
    • PostGreSQL (django.db.backends.postgresql_psycopg2)
    • Oracle (django.db.backends.oracle) 和 NoSQL DB
    • MongoDB (django_mongodb_engine)
    在设置任何新引擎之前,请确保您安装了正确的数据库驱动程序。
    您还可以设置其他选项,例如:TIME_ZONE、LANGUAGE_CODE、TEMPLATE…
    现在您的项目已创建和配置,请确保它正在工作 -
    
    $ python manage.py runserver
    
    运行上面的代码,你会得到类似下面的东西 -
    
    Validating models...
    0 errors found
    September 03, 2015 - 11:41:50
    Django version 1.6.11, using settings 'myproject.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.