从零开始用Python搭个网站?Django真没你想的那么难!

代码杂货铺
2025-12-23 22:25
阅读 2124

大家好,我是一个干了5年后端开发的老兵。这几年带过不少实习生,也教过完全零基础的朋友入门编程。每次说到“想做个网站”,很多人第一反应是:“那得学好多东西吧?HTML、CSS、JavaScript、数据库……太复杂了!”

其实,如果你会一点 Python,用 Django 框架,真的能在半小时内跑起一个能看能用的网站!我当初学的时候也以为要折腾好几天,结果发现:Django 把最麻烦的事都替你干了

今天这篇教程,就是写给完全没碰过 Web 开发的你。不讲大道理,只带你一步步动手,避开我当年踩过的坑。


为什么选 Django?

Django 是一个用 Python 写的“全栈”Web 框架。什么叫“全栈”?简单说,就是它把建网站需要的大部分功能都打包好了:

  • 路由(用户访问哪个网址,执行哪段代码)
  • 数据库操作(不用手写 SQL)
  • 后台管理界面(自动生成!)
  • 用户登录/权限控制
  • 安全防护(防 XSS、CSRF 等)

对新手来说,最大的好处是:开箱即用,少走弯路

📌 小提醒:Django 不适合做超高并发或极简 API(这时候用 Flask 更轻),但如果你要做博客、电商后台、内容管理系统这类“综合型”网站,Django 是绝佳起点。


第一步:环境准备(别跳过!)

很多新手卡在第一步——环境装不对。我见过太多人因为 Python 版本混乱、包冲突,直接放弃。所以这里写得特别细。

1. 确认 Python 已安装

打开终端(Mac/Linux)或命令提示符(Windows),输入:

python --version
# 或
python3 --version

推荐使用 Python 3.8~3.12。如果没装,去 python.org 下载安装。

💡 我当初学的时候用的是 Python 2.7,后来整个项目都废了……千万别用 Python 2!

2. 创建虚拟环境(关键!)

虚拟环境就像给你的项目单独配个“小房间”,不会和其他项目打架。

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

# 激活它
# Windows:
mysite_env\Scripts\activate
# Mac/Linux:
source mysite_env/bin/activate

激活后,命令行前面会出现 (mysite_env),说明成功了。

3. 安装 Django

pip install django

验证是否安装成功:

django-admin --version
# 应该输出类似 5.0.x 的版本号

⚠️ 坑点:不要用 sudo pip(Mac/Linux),也不要全局安装 Django。一定要在虚拟环境中装!


第二步:创建你的第一个 Django 项目

Django 把“项目”和“应用”分开理解:

  • 项目(Project):整个网站,比如“我的博客系统”
  • 应用(App):网站里的一个功能模块,比如“文章管理”、“用户评论”

现在,我们创建一个叫 mysite 的项目:

django-admin startproject mysite
cd mysite

目录结构长这样:

mysite/
    manage.py          ← 管理脚本(启动、数据库迁移等)
    mysite/            ← 项目配置文件夹
        __init__.py
        settings.py    ← 全局配置(数据库、时区、APP列表等)
        urls.py        ← 主路由文件
        asgi.py
        wsgi.py

启动开发服务器

python manage.py runserver

看到 Starting development server at http://127.0.0.1:8000/ 就成功了!打开浏览器访问这个地址,你会看到一只火箭🚀——恭喜,你的第一个 Python 网站跑起来了!

🔥 常见问题:
Q:打不开 8000 端口?
A:可能是被占用。换端口:python manage.py runserver 8080
Q:中文显示乱码?
A:在 settings.py 中设置 LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'


第三步:创建一个“应用”——展示欢迎页

现在网站只有默认页面,我们要加点自己的内容。

1. 创建 App

python manage.py startapp home

这会在根目录下生成 home/ 文件夹。

2. 注册 App

打开 mysite/settings.py,找到 INSTALLED_APPS,加上 'home'

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

3. 写视图(View)

视图就是“当用户访问某个网址时,返回什么内容”。

编辑 home/views.py

from django.http import HttpResponse

def welcome(request):
    return HttpResponse("你好!这是我的第一个 Django 页面!")

4. 配置路由(URL)

告诉 Django:当用户访问 / 时,调用 welcome 函数。

先修改 home/urls.py(如果不存在就新建):

from django.urls import path
from . import views

urlpatterns = [
    path('', views.welcome, name='welcome'),
]

再修改主路由 mysite/urls.py

from django.contrib import admin
from django.urls import path, include  # ← 别忘了 import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('home.urls')),  # ← 引入 home 的路由
]

重启服务器,刷新页面,你会看到自己写的文字!


第四步:用模板(Template)让页面更像“网页”

直接返回字符串太简陋了。Django 支持 HTML 模板。

1. 创建模板目录

home/ 下新建文件夹:

home/
    templates/
        home/
            index.html

📁 为什么是 templates/home/index.html
这是 Django 的约定:templates/应用名/模板名.html,避免多个 App 模板重名。

2. 编写 HTML

home/templates/home/index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>我的首页</title>
</head>
<body>
    <h1>欢迎来到我的 Django 网站!</h1>
    <p>当前时间:{{ current_time }}</p>
</body>
</html>

注意 {{ current_time }} —— 这是 Django 的“变量插值”语法。

3. 修改视图,传数据给模板

home/views.py

from django.shortcuts import render
from datetime import datetime

def welcome(request):
    context = {
        'current_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    }
    return render(request, 'home/index.html', context)

这里用 render 函数代替了 HttpResponse,它会自动找模板并渲染。

刷新页面,现在能看到动态时间了!


第五步:体验 Django 最牛的功能——Admin 后台

Django 自带一个超级强大的管理后台,不用写一行前端代码

1. 创建超级管理员

python manage.py createsuperuser

按提示输入用户名、邮箱、密码(密码输入时不会显示,正常输就行)。

2. 访问后台

启动服务器后,访问 http://127.0.0.1:8000/admin,用刚才的账号登录。

你会发现:用户、组已经可以管理了!这就是 Django 的“开箱即用”。

💡 如果你想管理自己的数据(比如文章、商品),只需两步:

  1. models.py 中定义数据结构
  2. admin.py 中注册模型 后台就会自动生成增删改查界面!

新手常踩的坑 & 解决方案

问题 原因 解决办法
ModuleNotFoundError: No module named 'django' 没激活虚拟环境 执行 source mysite_env/bin/activate(Mac/Linux)
修改代码后页面没变化 开发服务器没自动重载 检查终端是否有报错;或手动重启 runserver
中文显示成方块 模板没声明 UTF-8 在 HTML <head> 里加 <meta charset="utf-8">
路由 404 URL 配置顺序错了 Django 从上往下匹配,把通用路由放最后
静态文件(CSS/JS)加载失败 没配静态文件路径 开发阶段通常不用管,部署时才需配置

接下来怎么学?

你现在已经掌握了 Django 的核心流程:请求 → 路由 → 视图 → 模板 → 响应

下一步建议:

  1. 学模型(Model):用 Python 类定义数据库表,Django 自动生成 SQL。
  2. 玩转 Admin:把你的数据模型注册到后台,体验“无代码管理”。
  3. 做个小项目:比如“待办事项列表”或“简易博客”,巩固知识。
  4. 了解 MTV 模式:Django 的设计思想(Model-Template-View,类似 MVC)。

最后送你一句我常对新人说的话:不要试图一次搞懂所有概念。先跑起来,再慢慢拆解。 编程不是背书,是动手的艺术。


结语

这篇教程没讲 ORM、中间件、REST API 这些高阶内容,因为对零基础来说,先建立信心比学全更重要。你已经用 Python 搭起了一个能运行的网站,这就是最大的突破!

Django 的魅力在于:它让你专注于“做什么”,而不是“怎么做”。当你需要做一个综合型的 Web 应用时,它永远是你最可靠的伙伴。

现在,关掉这篇文章,打开你的终端——去敲下那行 django-admin startproject 吧。你的第一个网站,正在等你点亮!

评论 0

最热最新
暂无评论
代码杂货铺Lv.1
0
影响力
0
文章
0
粉丝