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

启动一个新项目

创建一个新的 Django 项目:

1
django-admin startproject myproject

myproject目录结构:

1
2
3
4
5
6
7
8
9
myproject/                  <-- 高级别的文件夹
|-- myproject/ <-- Django项目文件夹
| |-- myproject/
| | |-- __init__.py
| | |-- settings.py
| | |-- urls.py
| | |-- wsgi.py
| +-- manage.py
+-- venv/ <-- 虚拟环境文件夹
  • manage.py: 使用django-admin命令行工具的快捷方式。它用于运行与我们项目相关的管理命令。我们将使用它来运行开发服务器,运行测试,创建迁移等等。
  • __init.py:这个空文件告诉python这个文件夹是一个python包。
  • settings.py:这个文件包含了所有的项目配置。将来我们会一直提到这个文件!
  • urls.py:这个文件负责映射我们项目中的路由和路径。例如,如果你想在访问URL / about/ 时显示某些内容,则必须先在这里做映射关系。
  • wsgi.py:该文件是用于部署的简单网关接口

开发过程中,通过执行命令来测试:

1
python manage.py runserver

浏览器中打开URL:http://127.0.0.1:8000

Django 应用

  • app:是一个可以做完成某件事情的Web应用程序。
    一个应用程序通常由一组models(数据库表),views(视图),templates(模板),tests(测试) 组成。
  • project: 是配置和应用程序的集合。
    一个项目可以由多个应用程序或一个应用程序组成。

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

1
django-admin startapp boards

目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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/
  • migrations/:在这个文件夹里,Django会存储一些文件以跟踪你在models.py文件中创建的变更,用来保持数据库和models.py的同步。
  • admin.py:这个文件为一个django内置的应用程序Django Admin的配置文件。
  • apps.py:这是应用程序本身的配置文件。
  • models.py:这里是我们定义Web应用程序数据实例的地方。models会由Django自动转换为数据库表。
  • tests.py:这个文件用来写当前应用程序的单元测试。
  • views.py:这是我们处理Web应用程序请求(request)/响应(resopnse)周期的文件。

settings.py

1
2
3
4
5
6
7
8
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

Django默认已经安装了6个内置应用程序
身份验证会话静态文件管理(图像,JavaScript,CSS等)等

将我们的应用程序boards添加到INSTALLED_APPS列表:

1
2
3
4
5
6
7
8
9
10
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

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

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :