Django入门与实践-第2章:创建项目

By 刘志军, 2020-01-07, 分类: django教程

django

启动一个新项目

执行下面的命令来创建一个新的 Django 项目:

django-admin startproject myproject

命令行工具django-admin会在安装Django的时候一起自动安装好。

执行了上面的命令以后,系统会为Django项目生成基础文件夹结构。

现在,我们的myproject目录结构如下所示:

myproject/                  <-- 高级别的文件夹
 |-- myproject/             <-- Django项目文件夹
 |    |-- myproject/
 |    |    |-- __init__.py
 |    |    |-- settings.py
 |    |    |-- urls.py
 |    |    |-- wsgi.py
 |    +-- manage.py
 +-- venv/                  <-- 虚拟环境文件夹

我们最初的项目结构由五个文件组成:

django自带了一个简单的网络服务器。在开发过程中非常方便,所以我们无需安装任何其他软件即可在本地运行项目。我们可以通过执行命令来测试一下它:

python manage.py runserver

现在,你可以忽略终端中出现的迁移错误;我们将在稍后讨论。

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

使用组合键 Control + C来终止开发服务器。


Django 应用

在Django的哲学中,我们有两个重要的概念:

请注意,如果没有一个project,你就无法运行Django应用程序。像博客这样的简单网站可以完全在单个应用程序中编写,例如可以将其命名为blogweblog

这是组织源代码的一种方式。现在刚开始,判断什么是或不是应用程序这些还不太重要。包括如何组织代码等。现在不用担心那些问题!首先让我们对Django的API和基础知识进行梳理一遍。

好的!那么,为了方便说明,我们来创建一个简单的网络论坛讨论区。要创建我们的第一个应用程序,请跳转到manage.py文件所在的目录并执行以下命令:

django-admin startapp boards

注意!我们这次使用的命令是startapp

通过这条指令,系统会给我们创建以下目录结构:

myproject/
 |-- myproject/
 |    |-- boards/                <-- 我们新的Django应用(app)!
 |    |    |-- migrations/
 |    |    |    +-- __init__.py
 |    |    |-- __init__.py
 |    |    |-- admin.py
 |    |    |-- apps.py
 |    |    |-- models.py
 |    |    |-- tests.py
 |    |    +-- views.py
 |    |-- myproject/
 |    |    |-- __init__.py
 |    |    |-- settings.py
 |    |    |-- urls.py
 |    |    |-- wsgi.py
 |    +-- manage.py
 +-- venv/

下面,我们来探讨每个文件的作用:

现在我们创建了我们的第一个应用程序,让我们来配置一下项目以便启用这个应用程序。

要做到这一点,打开settings.py并尝试找到INSTALLED_APPS变量:

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

如你所见,Django默认已经安装了6个内置应用程序。它们提供大多数Web应用程序所需的常用功能,如身份验证,会话,静态文件管理(图像,JavaScript,CSS等)等。

我们将会在本系列教程中探索这些应用程序。但现在,先不管它们,只需将我们的应用程序boards添加到INSTALLED_APPS列表即可:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'boards',  # 译者注:建议和作者一样空一行来区别内置app和自定义的app
]

使用前面漫画正方形和圆圈的比喻,黄色的圆圈就是我们的boards应用程序,django.contrib.admin, django.contrib.auth等就是红色的圆圈。


有问题可以扫描二维码和我交流

关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2019-06-08
Django 建立多字段唯一索引
2014-02-08
Django url()函数详解
2020-01-07
Django入门与实践-第11章:URL 分发
2020-01-07
Django入门与实践-第24章:我的账户视图
2020-01-07
Django入门与实践-第20章:QuerySets(查询结果集)
2014-02-25
仅仅是一个轮子
2019-05-24
Django 数据模型 ForeignKey 的 on_delete 属性的可选值
2019-05-16
Django Admin 日期字段格式化
2020-01-07
Django入门与实践-第21章:迁移
2020-01-07
Django入门与实践-第18章:访问已登录用户