祖传代码:
关联条目:HTTP(S)协议、Cookie、Web开发共通基础、Python
| 特点 | 说明 |
| 全功能框架 | 自带 ORM、权限管理、Admin 后台、表单、缓存、路由等,开箱即用 |
| MTV 架构 | 类似 MVC,分为 Model(数据层)、Template(模板层)、View(逻辑层) |
| Admin 后台 | 自动生成后台管理界面,极大提升开发效率 |
| 强大的 ORM | 数据库操作无需手写 SQL,跨数据库兼容性好 |
| 成熟稳定 | 十多年发展,文档完善,社区活跃,安全稳定 |
| 安全机制 | 防止 XSS、CSRF、SQL 注入等攻击的机制默认开启 |
| 丰富的中间件 | 支持认证、缓存、跨域、压缩、限流等功能快速集成 |
| 良好的国际化 | 支持多语言、时区、国际化日期格式等 |
python -m pip install Django==5.2.4 # 准备好虚拟环境并激活 # 创建工程并进入 django-admin startproject gzh_site cd gzh_site # 创建APP python manage.py startapp demo # 生成迁移文件(记录模型变化) python manage.py makemigrations # 执行迁移文件,实际修改数据库 # 把 Django 项目里定义的 models.py(数据模型)同步到数据库 # 生成或更新相应的数据表结构 # 我们不需要自己操作SQL python manage.py migrate # 启动项目 python manage.py runserver
# models.py # 在 Django 的 models.Model 子类里,这种 把字段定义为类变量 的写法,是 Django ORM 框架的约定。 class User(models.Model): username = models.CharField(max_length=50) email = models.EmailField() created_at = models.DateTimeField(auto_now_add=True)
AI:它是 Django 框架提供的数据库抽象层,让你用 Python 的类和对象 来操作数据库,而不需要直接写 SQL。
默认情况下,Django 会根据模型所在的 App 和类名,自动生成数据库表名,格式为:<app_label>_<model_name>。在每个模型的 Meta 类中添加 db_table 即可自定义 table 的名称。
# urls.py urlpatterns = [ path('users/', include('user.urls')), path('orders/', include('order.urls')), path('products/', include('product.urls')), ]
Django 不会帮你新建数据库本身(CREATE DATABASE),你需要手动用工具建好,但 Django 会在这个数据库里自动建好所有表
# settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'myuser', 'PASSWORD': os.environ.get('DB_PASSWORD'), # 从环境变量读取 'HOST': 'localhost', 'PORT': '3306', } }
DRF(Django REST framework) 并不是 Django 官方团队开发的,它是一个第三方开源框架
python -m pip install djangorestframework (py311) anny@annys-MacBook-Air ~ % python -m pip show djangorestframework Name: djangorestframework Version: 3.16.0 Summary: Web APIs for Django, made easy. Home-page: https://www.django-rest-framework.org/ Author: Tom Christie Author-email: tom@tomchristie.com License: BSD Location: /Users/anny/pyenv/py311/lib/python3.11/site-packages Requires: django Required-by: