Skip to content

基本使用

文档介绍使用 Django 版本 5.2.8 官方文档

1.安装

推荐虚拟环境安装 本项目全部依赖requirements.txt👇

txt
asgiref==3.11.0
Django==5.2.8
django-cors-headers==4.9.0
djangorestframework==3.16.1
PyMySQL==1.1.2
sqlparse==0.5.4
tzdata==2025.2

不使用虚拟环境以上忽略👆

shell
pip install django

验证安装 django-admin --version

2.创建项目

bash
django-admin startproject server my-project

生成目录结构如下

text
my-project/
    manage.py
    server/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

3.启动开发服务器

bash
python manage.py runserver

4.创建服务应用

bash
python manage.py startapp app
diff
# 主项目 server/settings.py 在 INSTALLED_APPS 添加
INSTALLED_APPS = [
+    'app.apps.AppConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

5.编写视图

编辑 app/views.py

python
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the app index.")

6.配置URL路由

python
# 创建app/urls.py
from django.urls import path
from . import views

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

# 在主项目 server/urls.py 中包含应用的路由 server/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('app/', include('app.urls')),
    path('admin/', admin.site.urls),
]

7.使用模板(Template)

  • 在 app 目录下创建 templates/app/index.html:
html
<!-- app/templates/app/index.html -->
<h1>{{ message }}</h1>
  • 修改视图
python
from django.shortcuts import render

def index(request):
    context = {'message': 'Welcome to app!'}
    return render(request, 'app/index.html', context)

如果访问报错请查看是否配置 INSTALLED_APPS 任意门

8.模型(model)与数据库

  • 定义模型(app/models.py)
python
from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
bash
# 1. 创建迁移文件
python manage.py makemigrations app
# 2. 应用迁移(同步到数据库)
python manage.py migrate

(可选) 使用MySQL数据库 默认SQLLite

python
# 主目录 server/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxxx',
        'USER': 'xxxx',
        'PASSWORD': 'xxxx',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'CONN_MAX_AGE': 60,  # 连接复用时间
        'OPTIONS': {
            'charset': 'utf8mb4',
            'init_command': "SET NAMES 'utf8mb4'",
        }
    }
}

因缺少MySQL依赖包 报错后按需安装 本文档安装 PyMySQL==1.1.2

9.创建超级用户

bash
python manage.py createsuperuser
  • 注册模型到 admin(app/admin.py)
python
from django.contrib import admin
from .models import Question

admin.site.register(Question)

manage.py 常用命令

命令说明
python manage.py runserver启动开发服务器
python manage.py startapp appname创建新应用
python manage.py makemigrations生成数据库迁移文件
python manage.py migrate应用数据库迁移
python manage.py createsuperuser创建超级用户
python manage.py shell进入 Django 交互 shell
python manage.py collectstatic收集静态文件(部署时用