Skip to content

配置与启动Django

Django 是 Python Web 开发里非常经典的框架。它最大的价值之一,就是帮你把网站开发中那些重复而基础的工作提前搭好。

例如:

  • 路由分发
  • 页面模板
  • 数据库映射
  • 管理后台
  • 用户认证

所以学习 Django 的第一步,不是先背一堆命令,而是先把项目真正跑起来,并且理解项目目录里每个关键文件是干什么的。

本节目标

  • 正确安装 Django
  • 学会验证 Django 是否安装成功
  • 学会创建 Django 项目
  • 学会创建 Django 应用
  • 理解项目目录结构
  • 学会注册应用
  • 学会启动开发服务器
  • 建立对 Django 项目骨架的整体认识

先修知识

在开始这一节之前,你最好已经具备:

  • Python 基础语法
  • 命令行的基础使用
  • pip 安装包的基本概念

如果你还完全不熟命令行,建议先回头把 Python 环境和命令行那部分复习一遍。

为什么要用 Django

如果没有框架,你自己做网站会很快遇到这些问题:

  • 用户访问某个地址时,应该执行哪段代码
  • 数据库怎么连接
  • HTML 页面怎么和 Python 数据结合
  • 用户登录状态怎么保存
  • 后台管理页面怎么搭

这些问题都不是“一次性”的,而是每个网站都会遇到。

Django 的价值就在于:它把这些通用能力做成了一整套成熟方案,让你可以更快进入真正的业务开发。

第一步:安装 Django

最基础的安装命令是:

bash
pip install django

如果你的机器上同时有多个 Python 版本,也可能会用:

bash
python -m pip install django

或者:

bash
py -m pip install django

哪一种能成功,就用哪一种。

第二步:验证安装是否成功

安装完成后,不要急着创建项目,先确认环境真的可用。

bash
python -m django --version

如果输出版本号,例如:

text
5.2.1

就说明 Django 已经安装成功。

如果这里报错,说明安装还没真正可用,先别往下走。

第三步:创建 Django 项目

创建项目命令:

bash
django-admin startproject mysite

执行完成后,会生成一个目录结构:

text
mysite/
  manage.py
  mysite/
    __init__.py
    settings.py
    urls.py
    asgi.py
    wsgi.py

这就是一个最基础的 Django 项目。

理解项目目录结构

这一部分非常重要。很多人学 Django 时痛苦,不是因为命令多,而是因为不知道这些文件分别是干什么的。

manage.py

这是项目管理入口。

后面你常用的命令几乎都要通过它执行,例如:

  • 启动服务
  • 创建 app
  • 数据库迁移
  • 创建管理员账号

例如:

bash
python manage.py runserver

内层 mysite/

外层目录是项目文件夹,内层同名目录才是真正的项目配置包。

settings.py

这是项目配置文件。

里面通常会放:

  • 应用注册
  • 数据库配置
  • 模板配置
  • 静态文件配置
  • 调试模式

urls.py

这是项目的路由入口文件,用来决定:

  • 用户访问哪个地址
  • 应该交给哪个视图处理

wsgi.pyasgi.py

这两个文件和部署、服务接口有关。零基础阶段你先知道它们存在就行,后面正式部署时再深入。

第四步:启动开发服务器

进入项目目录后执行:

bash
python manage.py runserver

正常情况下,你会看到类似输出:

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

这说明 Django 本地开发服务器已经启动成功。

这时用浏览器打开:

text
http://127.0.0.1:8000/

如果页面出现 Django 默认欢迎页,就说明项目跑起来了。

第五步:创建应用 app

在 Django 中,一个项目通常不会把所有功能都写在一个地方,而是会拆成多个 app。

例如:

  • 用户模块一个 app
  • 文章模块一个 app
  • 课程模块一个 app

创建 app 的命令:

bash
python manage.py startapp users

执行后会生成:

text
users/
  admin.py
  apps.py
  models.py
  tests.py
  views.py

这表示你已经创建了一个叫 users 的应用模块。

为什么 Django 要拆 app

因为项目规模变大后,如果所有代码都堆在一起,会很难维护。

拆 app 的好处是:

  • 功能边界更清晰
  • 文件更容易管理
  • 后期扩展更方便

你可以把项目理解成“总工程”,把 app 理解成“工程里的功能模块”。

第六步:注册应用

app 创建完成后,不能直接生效,还要先注册到项目中。

去项目里的 settings.py 找到:

python
INSTALLED_APPS = [
    ...
]

然后把你的 app 名字加进去:

python
INSTALLED_APPS = [
    ...
    "users",
]

这一步的意义是告诉 Django:

“这个 app 是项目的一部分,请把它纳入管理。”

第七步:写第一个视图

打开 users/views.py

python
from django.http import HttpResponse


def index(request):
    return HttpResponse("你好,Django")

这段代码定义了一个最简单的视图函数。

它的作用是:

  • 接收浏览器请求
  • 返回一句文本响应

第八步:配置路由

打开项目的 urls.py,先导入视图:

python
from django.contrib import admin
from django.urls import path
from users.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
]

这里:

  • path('', index) 表示访问首页时执行 index 视图

第九步:再次启动并访问

执行:

bash
python manage.py runserver

然后访问:

text
http://127.0.0.1:8000/

如果配置正确,浏览器会显示:

text
你好,Django

这意味着你已经完成了一个最基础的 Django 请求闭环:

  1. 浏览器访问地址
  2. Django 匹配路由
  3. Django 调用视图函数
  4. Django 返回响应

一个完整最小项目流程回顾

你可以把目前为止的操作总结成这几步:

  1. 安装 Django
  2. 验证版本
  3. 创建项目
  4. 启动开发服务器
  5. 创建 app
  6. 注册 app
  7. 编写视图
  8. 配置路由
  9. 浏览器访问页面

只要这一套能走通,后面学模板、表单、模型时就不会悬空。

常见错误

1. django-admin 命令找不到

通常说明:

  • Django 没装成功
  • Python 环境没对上
  • 命令行没有使用正确解释器

可以改用:

bash
python -m django --version

或:

bash
python -m django startproject mysite

2. 启动服务时报端口被占用

你可以换端口启动:

bash
python manage.py runserver 8001

3. 创建 app 了,但没注册

如果你后面发现模板、模型、管理后台等行为不正常,一个常见原因就是 app 没加到 INSTALLED_APPS

4. 路由写了,但页面还是 404

要检查:

  • urls.py 是否真的配置了对应路径
  • 导入的视图函数是否正确
  • 路径有没有写错

练习题

练习 1

自己创建一个新的 Django 项目,并确保默认欢迎页能正常打开。

练习 2

创建一个名为 course 的 app,并注册到 INSTALLED_APPS 中。

练习 3

course/views.py 中写一个视图,返回:

text
欢迎学习 Django

并配置路由让浏览器可以访问它。

练习 4

尝试把 runserver 的端口改成 8001 再访问。

练习 5

自己解释一遍:

  • manage.py 是做什么的
  • settings.py 是做什么的
  • urls.py 是做什么的

本节小结

这一节最重要的,不是只会运行几个命令,而是要真正理解:

  • Django 项目是怎么创建出来的
  • app 是什么
  • 路由和视图是怎样接起来的
  • 浏览器请求是如何被 Django 接住并返回结果的

只要你把这一套起步流程彻底走通,后面 Django 的其他模块就有了落脚点。

Built with VitePress.