Django是Python生态中非常流行的Web开发框架,它内置了ORM、认证系统、路由管理、模板引擎等丰富功能模块,可以显著降低Web项目的开发成本。本文将从环境准备、虚拟环境隔离、项目创建、启动验证、应用拆分以及运行参数调整等方面,完整梳理在Python环境中创建Django项目的操作流程。

一、前期环境准备与虚拟环境隔离
在开始创建Django项目之前,需要确保本地已经安装Python环境,建议使用Python 3.8及以上版本。同时还需要准备好命令行工具,Windows用户可以使用CMD或PowerShell,macOS和Linux用户直接使用终端即可。命令行工具是与Django交互的主要入口,后续的虚拟环境操作、项目创建、开发服务器启动等都需要在终端中完成。
为了避免不同项目之间的依赖包产生冲突,强烈建议为每一个Django项目单独创建虚拟环境。虚拟环境可以理解为一个独立的Python运行空间,在该空间内安装的第三方包不会影响系统全局环境,也不会与其他项目环境相互干扰。创建虚拟环境后,进入该环境再进行Django安装和项目开发,可以让项目依赖更加清晰可控。
创建并激活虚拟环境
首先在合适的磁盘位置创建一个项目文件夹,然后进入该文件夹,执行以下命令创建虚拟环境。命令中的env是虚拟环境目录名称,可以根据实际需要自定义。
# 创建虚拟环境,env为虚拟环境名称,可以自定义 python -m venv env # Windows系统激活虚拟环境 envScriptsactivate # macOS/Linux系统激活虚拟环境 source env/bin/activate
虚拟环境激活成功后,命令行提示符前面通常会出现env或类似标识,这表示当前已经进入该虚拟环境。后续所有与项目相关的Python命令和包管理操作都应该在该环境中执行,这样才能保证依赖隔离的效果。
安装Django依赖
在已经激活的虚拟环境中,使用pip工具安装Django。默认情况下会安装当前最新的稳定版本,如果项目对版本有特殊要求,也可以在安装命令中指定版本号。
pip install django
安装完成后,可以通过以下命令查看Django版本信息,以验证安装是否成功。如果终端能够正常输出版本号,说明Django已经正确安装到当前虚拟环境中。
python -m django --version
二、创建Django项目与目录结构解析
Django安装完成之后,就可以使用其自带的命令行工具创建项目了。Django提供了django-admin命令,其中startproject子命令用于生成一个新的项目骨架。执行下面的命令后,会在当前目录下生成一个与项目名称相同的文件夹。
# myblog是项目名称,可以自定义,注意不要使用Python保留字 django-admin startproject myblog
项目创建完成后,myblog目录中会生成若干文件。Django项目采用内外两层同名目录的结构,外层目录用于存放整个项目的管理入口,内层目录用于存放项目的核心配置。下面是生成后的目录结构示意:
myblog/
manage.py
myblog/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
各个文件承担着不同职责,理解这些文件的作用对后续开发非常重要。
manage.py:Django项目的命令行管理工具,项目运行、数据库迁移、创建应用等操作都需要通过该文件执行。settings.py:项目的核心配置文件,包含数据库连接、应用注册、中间件、模板、静态文件等配置信息。urls.py:项目的路由配置文件,负责将不同的请求路径映射到对应的视图处理逻辑。asgi.py和wsgi.py:项目部署时使用的接口文件,分别对应异步和同步部署场景,通常由部署服务器加载。
内层myblog目录中的__init__.py文件用于标识该目录是一个Python包,该文件通常保持为空即可。有了这样的目录结构,Django项目就具备了基本的运行能力。
三、启动项目验证运行状态
项目创建完成后,需要启动开发服务器来验证项目是否能够正常运行。进入外层myblog目录,执行以下命令即可启动Django自带的开发服务器。
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. Current time Django version 4.2.0, using settings 'myblog.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
此时打开浏览器访问http://127.0.0.1:8000/,如果能够看到Django的默认欢迎页面,就说明项目已经成功创建并正常启动。关于未应用迁移的提示暂时可以忽略,后续在实际开发模型时再执行迁移命令即可。
创建Django应用
Django项目通常由多个应用组成,每个应用负责一个相对独立的功能模块。例如一个博客项目可以拆分为文章应用、用户应用、评论应用等。在项目根目录执行下面的命令可以创建应用:
python manage.py startapp blog
执行完成后,项目目录下会生成一个名为blog的应用目录,其中包含模型、视图、迁移等文件。创建应用只是生成了目录和初始文件,Django项目此时还无法识别该应用,必须将其注册到项目配置中。
注册应用到项目配置
打开settings.py文件,找到INSTALLED_APPS列表,将新创建的应用名称添加进去。注册之后,Django才能识别该应用中的模型、视图和模板等内容。
# myblog/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 注册新创建的应用
'blog',
]
完成注册后,blog应用的功能就可以被Django项目识别和使用。后续可以在该应用目录中编写视图函数、配置路由、设计数据库模型,逐步实现具体的业务功能。
四、常见问题与运行参数调整
在实际开发过程中,可能会遇到开发服务器默认端口被占用的情况。此时可以指定其他端口来启动项目,例如使用8080端口。命令如下:
python manage.py runserver 8080
如果需要让局域网内的其他设备访问当前开发项目,可以将服务器绑定到所有网络接口。使用下面的命令启动后,同一局域网内的设备可以通过本机IP地址访问项目。
python manage.py runserver 0.0.0.0:8000
同时还需要修改settings.py中的ALLOWED_HOSTS配置,添加允许访问的主机地址。该配置用于限制能够访问Django应用的域名或IP,测试阶段可以设置为通配符,但生产环境必须指定具体的域名或IP,以提升安全性。
# myblog/settings.py ALLOWED_HOSTS = ['*'] # 测试阶段可以设置为*,生产环境需要指定具体域名
通过以上步骤,一个完整的Django项目已经可以创建并正常运行。掌握环境隔离、项目结构、应用创建和常见启动参数调整这些基础操作后,可以继续深入学习Django的视图函数、URL路由、模板渲染以及数据库模型等内容,逐步构建功能完整的Web应用。良好的项目初始化和配置习惯,也有助于后续团队协作与项目部署维护。