跳到主要内容

🏛️ Django:全功能 Web 框架

Django 是一个功能强大的 Web 开发框架,适合构建中大型网站和系统,提供内建的 ORM、用户认证、后台管理等。


✅ Django 解决了什么问题?

Flask 更轻量,适合微服务或快速原型。而 Django 提供了“全家桶”功能:

功能描述
URL 路由系统定义 URL 与视图函数的映射
模板引擎HTML 动态渲染支持
ORM不写 SQL 也能操作数据库
用户系统内建认证、登录、权限管理
后台管理自动生成后台界面,无需单独写管理页面
配置系统配置分离、支持多环境管理

⚙ 安装 Django

pip install django

📝 创建 Django 项目

django-admin startproject mysite
cd mysite
python manage.py runserver

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


📁 项目结构说明

mysite/
├── manage.py
├── mysite/
│ ├── __init__.py
│ ├── settings.py ← 配置文件
│ ├── urls.py ← 路由表
│ └── wsgi.py

🏗️ 创建应用(App)

python manage.py startapp blog

然后在 settings.py 中注册该应用:

INSTALLED_APPS = [
'blog',
...
]

📄 路由与视图函数

定义 blog/views.py

django.http 导入 HttpResponse

定义 首页(请求):
返回 HttpResponse("欢迎来到博客首页")

blog/urls.py 中添加:

django.urls 导入 path
. 导入 视图

urlpatterns = [
path("", 视图.首页),
]

再将其包含到项目主路由中 mysite/urls.py

django.urls 导入 include, path

urlpatterns = [
path("博客/", include("blog.urls")),
]

🧱 使用模板渲染 HTML

目录结构:

blog/
└── templates/
└── blog/
└── index.html

模板文件 index.html:

<h1>欢迎,{{ user }}</h1>

视图渲染模板:

django.shortcuts 导入 渲染

定义 首页(请求):
返回 渲染(请求, "blog/index.html", {"user": "小明"})

🧮 Django ORM 数据模型

blog/models.py 中定义模型:

django.db 导入 models

文章(models.Model):
标题 = models.CharField(max_length=100)
正文 = models.TextField()
创建时间 = models.DateTimeField(auto_now_add=True)

迁移数据库:

python manage.py makemigrations
python manage.py migrate

🧑‍💻 Django Admin 后台管理

创建超级用户:

python manage.py createsuperuser

注册模型 blog/admin.py

django.contrib 导入 admin
.模型 导入 文章

admin.site.register(文章)

访问后台:http://127.0.0.1:8000/admin


📦 Django 表单处理

自动生成表单类:

python manage.py startapp accounts

定义表单类 forms.py

django 导入 forms

登录表单(forms.Form):
用户名 = forms.CharField(label="用户名")
密码 = forms.CharField(widget=forms.PasswordInput)

⚙ Django 常用命令表

命令功能
startproject创建新项目
startapp创建应用
runserver启动开发服务器
makemigrations生成迁移文件
migrate应用数据库迁移
createsuperuser创建后台管理员
shell打开交互式环境