Django入门教程:搭建你的第一个Python网站

主从同步等一等
2025-12-19 07:44
阅读 1056

大家好,我是技术团队的培训负责人,过去五年带过上百名应届生从零开始学习后端开发。今天写这篇教程,是因为我深知:对完全没碰过Web开发的新手来说,Django 的“魔法”太多,文档术语太专业,很容易在第一步就卡住甚至放弃

我当初学的时候,光是搞懂“为什么一个命令就能跑起网站”就花了整整两天。所以今天,我会用最直白的语言、最清晰的步骤,带你亲手搭建第一个 Python 网站。全程注重安全意识——这是每个后端开发者必须刻进骨子里的习惯。


一、Django 是什么?能做什么?

Django 是一个用 Python 编写的开源 Web 框架。简单说,它是一套帮你快速搭建网站后端的“工具箱”。

  • 后端:就是网站背后的逻辑部分,比如用户登录、数据存储、接口处理等。你看不到,但网站离不开它。
  • Python:一种语法简洁、易读易写的编程语言,特别适合初学者入门。
  • Django 的优势:自带大量功能(如用户系统、管理后台),开发速度快,社区强大,而且默认就做了很多安全防护(比如防跨站脚本攻击、CSRF 保护等)。

💡 安全小贴士:Django 默认开启多项安全机制,比如自动转义模板变量、防止 SQL 注入等。但“默认安全”不等于“绝对安全”,我们后面会强调哪些地方需要额外注意。


二、环境准备:5分钟搭好开发环境

1. 安装 Python(3.8+)

python.org 下载最新版 Python(建议 3.8 或更高)。安装时务必勾选 “Add Python to PATH”(Windows 用户)。

验证安装:

python --version
# 或
python3 --version

看到类似 Python 3.10.12 就说明成功了。

2. 创建虚拟环境(强烈推荐!)

虚拟环境能隔离项目依赖,避免不同项目之间的包冲突。

# 创建虚拟环境(名字叫 myenv)
python -m venv myenv

# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate

激活后,命令行前缀会出现 (myenv),说明你已进入独立环境。

3. 安装 Django

在虚拟环境中运行:

pip install django

验证安装:

django-admin --version

看到版本号(如 4.2.7)即表示安装成功。

⚠️ 安全提醒:永远不要用 sudo pip install 全局安装包!这可能导致系统污染和权限问题。虚拟环境是安全开发的第一步。


三、核心概念:用大白话讲清楚

在动手前,先理解三个关键概念:

概念 解释 类比
Project(项目) 整个网站的容器,包含多个 App 一栋大楼
App(应用) 实现具体功能的模块,比如博客、用户系统 大楼里的房间(厨房、卧室)
View(视图) 处理用户请求并返回响应的函数或类 接待员,负责回答访客问题

我当初学的时候总混淆 Project 和 App。记住:一个 Project 可以包含多个 App,但一个 App 只属于一个 Project


四、实战:一步步搭建“欢迎页面”网站

现在,我们来创建一个显示“Hello, Django!”的网站。

步骤 1:创建 Project

django-admin startproject mysite
cd mysite

这会生成一个名为 mysite 的文件夹,结构如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • manage.py:Django 的命令行工具,用来运行服务器、创建 App 等。
  • settings.py:整个项目的配置文件(数据库、时区、安全设置等)。

步骤 2:创建第一个 App

python manage.py startapp hello

生成 hello/ 文件夹,里面包含:

  • views.py:写处理逻辑的地方
  • models.py:定义数据结构(本例暂不用)
  • apps.py:App 配置

🔒 安全提示:settings.py 中有个 SECRET_KEY,这是加密用的关键密钥!永远不要把它提交到 Git 公开仓库。后续我们会教你怎么用环境变量保护它。

步骤 3:注册 App

打开 mysite/settings.py,找到 INSTALLED_APPS 列表,加入 'hello'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    # ... 其他默认项
    'hello',  # ← 加这一行
]

步骤 4:写一个 View(视图)

编辑 hello/views.py

from django.http import HttpResponse

def welcome(request):
    return HttpResponse("Hello, Django! 👋")

这个函数接收一个 request(用户请求),返回一个 HTTP 响应。

步骤 5:配置 URL 路由

Django 需要知道:当用户访问哪个网址时,调用哪个 View。

  1. hello/ 目录下新建 urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.welcome, name='welcome'),
]
  1. 修改主项目路由 mysite/urls.py
from django.contrib import admin
from django.urls import path, include  # ← 注意引入 include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('hello.urls')),  # ← 包含 hello 应用的路由
]

🌐 路由流程图(文字版): 用户访问 http://127.0.0.1:8000/
→ 主路由匹配到 '' → 转发给 hello.urls
hello.urls 匹配到 '' → 调用 views.welcome
→ 返回 "Hello, Django!"

步骤 6:启动开发服务器

python manage.py runserver

看到输出:

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

打开浏览器,访问 http://127.0.0.1:8000/,就能看到你的第一个 Django 页面!

💡 新手常见问题:如果报错 Address already in use,说明 8000 端口被占用了。换端口启动:

python manage.py runserver 8080

五、常见问题解答(FAQ)

Q1:为什么我的页面中文显示乱码?

A:Django 默认使用 UTF-8 编码。确保你的 .py 文件保存为 UTF-8 格式(大多数编辑器默认如此)。如果仍乱码,在 HttpResponse 中显式指定:

return HttpResponse("你好,Django!", content_type="text/plain; charset=utf-8")

Q2:修改代码后页面没更新?

A:Django 开发服务器会自动重载代码,但有时会卡住。按 Ctrl+C 停止服务器,重新运行 runserver 即可。

Q3:如何关闭调试模式?

A:上线前必须关闭! 打开 settings.py,将 DEBUG = True 改为 False,并设置 ALLOWED_HOSTS = ['yourdomain.com']。否则会暴露敏感信息!

Q4:为什么不能直接用 print() 输出到网页?

A:print() 输出到控制台,不是网页。要用 HttpResponse 或 Django 模板系统。


六、下一步学习建议

恭喜你完成了第一个 Django 网站!但这只是起点。接下来我建议你:

  1. 学习 Django 模板系统
    把 HTML 写在单独的 .html 文件里,用 {{ 变量 }} 渲染数据,比硬编码字符串更安全、更灵活。

  2. 尝试 Models(数据库模型)
    用几行 Python 代码定义数据表,Django 自动帮你生成数据库操作(ORM)。记住:永远不要手动拼接 SQL 语句,用 ORM 防止注入攻击。

  3. 部署到线上(谨慎!)
    初学者可用 PythonAnywhere 免费部署。但务必:

    • 关闭 DEBUG
    • 设置强密码
    • 不提交 SECRET_KEY
  4. 阅读官方安全指南
    Django 官网有详细的安全最佳实践:https://docs.djangoproject.com/en/stable/topics/security/


最后的话

我带过的很多应届生,都是从这样一个简单的 “Hello World” 开始,最终成长为独当一面的后端工程师。重要的不是一开始多厉害,而是坚持动手、不怕犯错

记住:安全不是附加功能,而是开发习惯。从第一行代码开始,就要思考“这里会不会被攻击?”、“数据是否被正确验证?”。

如果你卡在某一步,别慌——把错误信息复制到搜索引擎,90% 的问题都有人遇到过。也可以留言问我。

现在,去改改你的 views.py,让页面显示你的名字吧!比如:

return HttpResponse("Hello, 张三! 欢迎来到 Django 世界!")

你已经迈出了成为 Python 后端开发者的第一步。加油!

评论 0

最热最新
暂无评论
主从同步等一等Lv.1
0
影响力
0
文章
0
粉丝