新手实战指南:Django 项目结构与启动管理

简介: 初次接触Django,你是否被它庞大的项目结构劝退?这正是其工程化优势所在。本文将带你从项目创建到服务启停,完整拆解核心文件结构,帮你避开端口占用等常见坑位。学完这篇,你将对Django的整体架构有清晰认知。

在第一次接触 Django 时,很多同学都会被它的“重量感”劝退:

明明只是想写个接口,为什么要先创建一整套项目结构?

但这恰恰是 Django 的优势所在。 它不是一个“一个 .py 文件跑全场”的轻量框架,而是从第一天就把你拉进工程化开发的轨道

这篇文章,完整整理了课堂视频中的核心内容,带你从 项目创建 → 服务启动 → 关闭与排错 → 项目结构拆解 一步步走清楚。


阅读目录

  • 一、Django 项目是如何创建的
  • 二、Django 服务如何启动与验证
  • 三、Django 服务关闭的两种方式
  • 四、新手最常见问题:端口被占用
  • 五、Django 项目整体结构一览(配图)
  • 六、核心文件逐个讲清楚
  • 七、为什么说 runserver 只适合开发环境
  • 八、本节内容小结

一、Django 项目是如何创建的?

在 Linux 环境中安装好 Django 后,系统会自动提供一个命令行工具:

django-admin

它是 创建 Django 项目的唯一入口

创建项目的核心命令

django-admin startproject 项目名

例如:

django-admin startproject myset

执行完成后,会在当前目录下生成一个新的项目文件夹。

你可以通过:

ls

来确认项目是否创建成功。


二、Django 服务如何启动与验证?

项目创建完成后,第一件事一定是:把服务跑起来,确认环境没问题。

1、 启动开发测试服务

进入项目目录,执行:

python3 manage.py runserver

此时 Django 会:

  • 启动一个开发环境服务器
  • 默认监听 8000 端口
  • 仅用于本地开发与测试

终端中会看到类似输出:

Starting development server at http://127.0.0.1:8000/

2、 浏览器验证服务状态

在浏览器中访问:

http://127.0.0.1:8000

如果看到 Django 的欢迎页面(带动画的那个),说明:

  • 项目结构正确
  • Django 运行正常
  • 服务启动成功

3、 指定其他端口启动

如果 8000 端口不方便使用,也可以指定端口:

python3 manage.py runserver 5000

访问地址对应变为:

http://127.0.0.1:5000

三、Django 服务如何关闭?两种常见方式

方式一:最推荐(记得启动终端)

在运行 runserver 的终端中,直接按:

Ctrl + C

服务会立刻停止,端口释放。


方式二:端口被占 / 忘了在哪个终端启动

这是新手阶段非常高频的情况。

1、 查找端口占用进程

sudo lsof -i :8000

输出可能会有多行,重点找状态为 LISTEN 的那一行

2、杀掉对应进程

kill -9 进程ID

然后重新执行 runserver 即可。


四、新手最常见问题:端口被占用怎么办?

当你启动服务时看到:

Error: That port is already in use

不要慌,这个问题本质只有两种原因:

  • 上一次 Django 服务没有正常关闭
  • 该端口被其他程序占用

解决思路固定不变:

  1. lsof -i :端口号
  2. LISTEN 状态
  3. kill 掉进程
  4. 重新启动服务

五、Django 项目整体结构一览

image.png

创建完成后的 Django 项目,结构大致如下:

myset/
├── manage.py
├── db.sqlite3
└── myset/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

六、Django 项目结构

graph LR
    A[Django 项目] --> B[manage.py]
    A --> C[db.sqlite3]
    A --> D[项目同名文件夹]
    D --> D1[__init__.py]
    D --> D2[settings.py]
    D --> D3[urls.py]
    D --> D4[wsgi.py]

七、核心文件逐个讲清楚(新手重点)


Django 项目文件结构拆解图

1、 manage.py —— Django 的命令总入口

  • 所有 Django 子命令都从这里触发
  • runservermigratecreatesuperuser 都依赖它

如果你忘了命令怎么写:

python3 manage.py

直接回车即可查看全部可用命令。


2、 db.sqlite3 —— 默认数据库文件

  • 新建项目时不存在
  • 第一次 runserver 时自动生成
  • Django 默认数据库

在实际项目中,后续通常会替换为 MySQL 或 PostgreSQL。


3、 项目同名文件夹(核心配置区)

  • __init__.py:Python 包标识
  • settings.py:项目配置核心文件
  • urls.py:主路由入口,所有请求先到这里
  • wsgi.py:正式上线时使用的 Web 网关配置

八、一个必须记住的结论

runserver 只适合开发和测试环境

  • 前台启动
  • 性能与安全性都不适合生产
  • 正式上线会采用更规范的启动方式

九、本节内容小结

  • Django 项目创建使用 django-admin startproject
  • 开发环境启动使用 python3 manage.py runserver
  • 服务关闭可通过 Ctrl + C 或 kill 进程
  • 项目结构中最重要的是:
  • manage.py(命令入口)
  • 项目同名文件夹(核心配置)


相关文章
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
1624 0
|
6月前
|
JavaScript 安全 前端开发
Playwright与JIRA集成:实现缺陷自动创建与追踪
本文将分享如何将Playwright与JIRA深度集成,实现测试失败时自动创建缺陷并实时跟踪。从环境配置到代码实战,手把手教你构建这套高效的质量闭环系统,让测试效率提升70%。
|
6月前
|
测试技术
Playwright测试策略:智能断言与软断言的应用
断言是自动化测试的基石,但传统断言常因一错即停、信息模糊而效率低下。本文将深入Playwright的智能断言与软断言策略,教你如何用自动等待简化代码,用错误收集替代立即中断。掌握这些技巧,你的测试将更健壮、更易维护。
|
6月前
|
存储 缓存 测试技术
测开必备:Playwright 浏览器上下文与页面复用深度拆解
你的Playwright测试是不是越跑越慢?一个电商项目,300个用例从30分钟拖到近2小时。性能分析发现,超过60%的时间竟浪费在浏览器的反复启动和销毁上。这不是硬件问题,而是资源管理策略的缺失。本文将拆解三种实战级的浏览器上下文复用方案,带你将测试效率提升60%以上。
|
5月前
|
Web App开发 人工智能 前端开发
Playwright 面试必备:测试工程师的实战指南
太多新人把 Playwright 当“黑盒”用:脚本能跑就行,一问原理就懵。其实面试官不关心你用了多新潮的工具,而是你是否真正理解它、能否用它稳定解决问题。这篇整理自一线实战和大厂真题,专为测试/测开同学准备,帮你把“会用”变成“懂用”。
|
6月前
|
人工智能 自然语言处理 安全
8B端侧智能写作体开源:DeepResearch,让您告别云端依赖
当深度研究能力被云端大模型垄断,企业却面临数据无法出域的安全禁令,这曾是一道无解的选择题。直到最近,清华大学、面壁智能等联合开源了仅8B参数却具备深度研究写作能力的智能体。它在完全本地部署的前提下,通过重构“写作即推理”的底层机制,首次将闭源云端模型的深度分析能力带入了内网,为高保密场景下的自动化研究打开了新局面。
|
6月前
|
数据采集 JSON 测试技术
Playwright数据驱动测试:从Excel与JSON获取测试数据指南
本文介绍了Playwright中数据驱动测试的实现,重点讲解如何从Excel和JSON文件分离测试数据与逻辑。通过具体代码示例展示了读取工具类的编写与测试用例的应用,比较了两者在维护性、版本控制和适用场景上的优缺点。数据驱动能显著提升代码复用性、降低维护成本,使测试更灵活高效,是优化自动化测试框架的重要实践。
|
6月前
|
人工智能 监控 安全
AI辅助测试体系从零到一:测试新人的安全落地指南
团队想搭AI测试体系却无从下手?中小团队资源有限能否落地?作为实战老兵,我曾用现有资源从0到1搭建体系,将回归效率提升40%。本文分享三步落地法:从精准选点到安全实践,再到流程融合,手把手助你避开常见坑位,让AI真正成为测试提效利器。
|
8月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP:AI驱动自动化测试,轻松告别传统脚本编写
本文介绍如何结合Playwright与MCP协议实现对话式UI自动化测试。通过自然语言指令驱动浏览器操作,显著降低脚本编写门槛,提升测试效率。文章涵盖环境配置、核心功能及实战案例,为构建智能自动化测试方案提供完整指南。
|
7月前
|
人工智能 运维 自然语言处理
裁员潮下的测试人:真正聪明的人正在做这三件事
测试岗位在变革,裁员与升迁并存,关键在于价值重定义。成功的测试人正从“找问题”转向“预防问题”,利用技术杠杆提升效率,并跳出职能标签,成为贯穿产品全流程的“守护者”。文章建议测试人员构建T型能力、建立个人质量品牌,通过主动升级来应对市场变化,在挑战中寻找新的价值机会。