创建第一个 Django 项目
🎉 准备开始你的Django之旅!
在本章中,你将学习如何创建你的第一个Django项目,并了解Django项目的基本结构和工作原理。
什么是Django项目?
在Django中,项目(Project)是一个完整的Web应用程序的集合,包含配置和多个应用(Apps)。一个项目可以由多个应用组成,每个应用负责特定的功能模块。
创建Django项目
1. 打开终端/命令提示符
首先打开你的终端(Linux/macOS)或命令提示符/PowerShell(Windows)。
💡 提示: 确保你已经激活了虚拟环境(如果使用的话)。
2. 创建项目
使用django-admin startproject命令创建新项目:
$ django-admin startproject mysite
这将创建一个名为mysite的目录,其中包含基本的Django项目结构。
🏷️ 项目命名建议:
- 使用小写字母
- 避免使用Python或Django保留字
- 使用下划线代替连字符(虽然两者都可以)
- 保持名称简短且有描述性
3. 进入项目目录
切换到新创建的项目目录:
$ cd mysite
现在你位于项目的根目录中。
4. 查看项目结构
使用以下命令查看创建的文件:
$ ls # Linux/macOS
> dir # Windows
你应该看到类似下面的结构:
- mysite/
- manage.py
- mysite/
- __init__.py
- settings.py
- urls.py
- wsgi.py
- asgi.py
项目结构详解
一个命令行工具,用于与Django项目进行各种交互,如:
- 运行开发服务器
- 创建数据库迁移
- 执行测试
- 启动Django shell
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django..."
) from exc
execute_from_command_line(sys.argv)
项目的实际Python包,包含:
- __init__.py - 空文件,告诉Python这是一个包
- settings.py - 项目设置/配置
- urls.py - URL声明
- wsgi.py - WSGI兼容Web服务器的入口点
- asgi.py - ASGI兼容Web服务器的入口点
重要文件详细说明
settings.py
包含所有项目配置:数据库、应用、中间件、模板等。
urls.py
定义URL模式,将URL映射到相应的视图函数。
wsgi.py & asgi.py
Web服务器网关接口,用于部署项目到生产环境。
运行开发服务器
1. 启动开发服务器
在项目根目录(包含manage.py的目录)运行:
$ python manage.py runserver
你会看到类似下面的输出:
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 01, 2023 - 15:30:45
Django version 4.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
2. 访问你的网站
打开浏览器并访问:http://127.0.0.1:8000/
Django欢迎页面 - The install worked successfully! Congratulations!
如果你看到Django的欢迎页面,说明项目创建成功!
3. 使用不同端口
默认使用8000端口,如需使用其他端口:
$ python manage.py runserver 8080
或指定IP地址和端口:
$ python manage.py runserver 0.0.0.0:8000
初始配置
⚡ 重要配置项
创建项目后,你应该检查并可能修改以下设置:
1. 数据库配置
默认使用SQLite数据库,如需更改:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
2. 时区和语言
根据你的位置调整时区和语言设置:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = True
3. 静态文件配置
配置静态文件(CSS, JavaScript, 图片):
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]
创建第一个应用
📚 项目 vs 应用:
一个项目包含多个应用,一个应用可以用于多个项目。应用是Web应用程序的功能模块,如博客、用户认证等。
1. 创建应用
在项目根目录运行:
$ python manage.py startapp blog
这将创建一个名为blog的应用目录。
2. 注册应用
在settings.py中添加应用到INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
数据库迁移
1. 创建迁移文件
Django使用迁移来管理数据库模式的变化:
$ python manage.py makemigrations
这会为INSTALLED_APPS中的应用创建迁移文件。
2. 应用迁移
将迁移应用到数据库:
$ python manage.py migrate
这会创建必要的数据库表。
3. 创建超级用户
访问Django管理后台需要创建超级用户:
$ python manage.py createsuperuser
按照提示输入用户名、邮箱和密码。
下一步
🎯 恭喜!你已成功创建第一个Django项目
接下来你可以:
探索管理后台
访问 /admin 查看Django自动生成的管理界面
创建视图和URL
学习如何创建页面和处理URL路由
设计数据模型
使用Django ORM创建数据库模型