Django 中创建一个新表(模型)流程

123 阅读2分钟

在 Django 中创建一个新表(模型)需要完成几个步骤,并且需要在多个文件中进行配置。以下是创建新表的基本步骤和相关文件的配置:

1. 定义模型

文件: myapp/models.py

在这个文件中,定义新的模型类,模型类继承自 django.db.models.Model。每个模型类对应数据库中的一张表。需要定义模型的字段和属性。例如:

from django.db import models

class UserList(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    created_at = models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.name

2. 注册模型到 Django 管理后台

文件: myapp/admin.py

在这个文件中,需要注册新创建的模型,以便它能在 Django 管理后台中显示。你可以使用 admin.site.register() 方法来完成注册。例如:

from django.contrib import admin
from .models import UserList

admin.site.register(UserList)

3. 生成和应用数据库迁移

步骤:

  1. 生成迁移文件:

    python manage.py makemigrations
    

    这个命令会根据 models.py 中的变化生成迁移文件,这些文件描述了如何在数据库中创建或修改表。

  2. 应用迁移:

    python manage.py migrate
    

    这个命令会应用迁移文件中的变更,实际在数据库中创建或修改表。

4. 更新 URL 配置(如果需要)

如果需要为新模型创建视图并且通过 URL 访问它,你需要在 myapp/urls.py 中添加相关的 URL 路径,并在 myapp/views.py 中编写视图函数。例如:

文件: myapp/urls.py

from django.urls import path
from . import views

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

文件: myapp/views.py

from django.shortcuts import render
from .models import UserList

def user_list(request):
    users = UserList.objects.all()
    return render(request, 'user_list.html', {'users': users})

5. 创建模板(如果需要)

如果需要展示模型数据,可能还需要创建一个 HTML 模板来显示这些数据。

文件: templates/user_list.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>User List</title>
</head>
<body>
    <h1>User List</h1>
    <ul>
        {% for user in users %}
            <li>{{ user.name }} - {{ user.email }} - {{ user.created_at }}</li>
        {% endfor %}
    </ul>
</body>
</html>

总结

创建一个新表涉及以下文件的配置:

  1. models.py - 定义模型类。
  2. admin.py - 注册模型到后台管理。
  3. 数据库迁移 - 生成并应用迁移文件。
  4. urls.pyviews.py - 配置视图和 URL(如果需要)。
  5. 模板文件 - 如果需要显示数据,创建相应的 HTML 模板。