从零开始,搭建一个基于 Django 的 Web 项目

🎯 主要步骤概述

1️⃣ 安装 Python 和 pip

2️⃣ 创建虚拟环境

3️⃣ 安装 Django

4️⃣ 创建 Django 项目

5️⃣ 运行开发服务器

6️⃣ 创建一个简单的应用(app)

7️⃣ 配置数据库并迁移

8️⃣ 创建超级用户(admin)

9️⃣ 访问后台管理界面

🔟 编写一个简单的视图和路由,验证页面可访问


1️⃣ 安装 Python 和 pip

Django 是基于 Python 的,你需要先安装好 Python(自带 pip)。

  • Windows/macOS/Linux 都可以去 Python 官网 下载最新版 Python 并安装。

  • 安装时勾选 "Add Python to PATH" 选项(重要!)。

验证是否安装成功:

复制代码
python --version
pip --version

2️⃣ 创建虚拟环境(推荐)

虚拟环境能帮你隔离不同项目依赖,避免冲突。

复制代码
# 在项目根目录创建虚拟环境(venv 是名字,可以随便起)
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate

# macOS/Linux:
source venv/bin/activate

激活后,命令行前面会出现 (venv),表示虚拟环境成功启用。


3️⃣ 安装 Django

在虚拟环境中安装 Django:

复制代码
pip install django

检查版本确认安装成功:

复制代码
django-admin --version

4️⃣ 创建 Django 项目

Django 项目是个整体容器,包含设置、数据库配置、路由等。

复制代码
django-admin startproject mysite

这样会在当前目录下创建一个 mysite 文件夹。


5️⃣ 启动开发服务器

进入项目目录:

复制代码
cd mysite

运行:

复制代码
python manage.py runserver

在浏览器打开 http://127.0.0.1:8000/,你会看到 Django 的欢迎页面,表示项目运行成功!


6️⃣ 创建应用(app)

Django 项目由一个或多个 app 组成。比如博客功能是一个 app,商城功能是另一个 app。

创建 app:

复制代码
python manage.py startapp myapp

然后你会看到多了一个 myapp 文件夹,里面有很多文件(views.pymodels.py 等)。


7️⃣ 配置数据库并迁移

默认情况下,Django 使用 SQLite 数据库。

先迁移数据库(初始化数据库结构):

复制代码
python manage.py migrate

8️⃣ 创建超级用户(后台管理)

Django 自带后台管理界面,非常方便。

复制代码
python manage.py createsuperuser

按提示输入用户名、邮箱和密码。

运行:

复制代码
python manage.py runserver

浏览器访问:http://127.0.0.1:8000/admin/

用刚才的超级用户账号登录,即可进入 Django 的后台管理界面。


9️⃣ 简单视图和路由

修改 myapp/views.py 文件:

复制代码
from django.http import HttpResponse

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

再修改项目的路由配置(mysite/urls.py):

复制代码
from django.contrib import admin
from django.urls import path
from myapp.views import home  # 导入刚刚的视图

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', home),  # 根路径访问 home
]

再次访问 http://127.0.0.1:8000/,你会看到 "Hello, Django!"!


🌟 到这里,Django 项目基本框架就搭建好了!🌟

接下来,你可以继续学习:

✅ 模板(HTML 渲染)

✅ 静态文件(CSS/JS)

✅ 数据模型(models)

✅ 表单和用户输入

✅ 部署到服务器(如 Heroku、阿里云)等。

相关推荐
gnip8 分钟前
微前端框架选型
前端·javascript
芒果12518 分钟前
【转载文章】ECharts-GL 实现世界级、国家级、省市级 3D 地图
前端
普郎特25 分钟前
大白话帮你彻底理解 aiohttp 的 ClientSession 与 ClientResponse 对象
爬虫·python
一只小风华~28 分钟前
JavaScript:数组常用操作方法的总结表格
前端·javascript·数据结构·vue.js·算法
前端老鹰32 分钟前
JavaScript Array.prototype.some ():数组判断的 “快捷侦探”
前端·javascript
张元清33 分钟前
揭秘JS事件循环:一道字节跳动面试题带你深入理解async/await、Promise与RAF
前端·react.js·面试
KenXu37 分钟前
F2C-Chrome插件-Figma免费的DevMode来了!
前端
北海几经夏42 分钟前
React组件中的this指向问题
前端·react.js
passer9811 小时前
列表项切换时同步到可视区域
前端
FogLetter1 小时前
移动端适配的终极奥义:从lib-flexible到postcss-pxtorem的全方位指南
前端·postcss