使用django进行数据库模拟数据生成
发布日期:2021-05-14 15:19:47 浏览次数:16 分类:精选文章

本文共 5333 字,大约阅读时间需要 17 分钟。

使 用 d j a n g o 进 行 数 据 库 模 拟 数 据 生 成 使用django进行数据库模拟数据生成 使django

django-admin startproject model_test

新建文件

在这里插入图片描述

模块注册

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'apps.gen_model']

数据库配置

DATABASES = {    'default': {           # 数据库引擎(是mysql还是oracle等)        'ENGINE': 'django.db.backends.mysql',        # 数据库的名字        'NAME': 'testmodel001',        # 连接mysql数据库的用户名        'USER': 'root',        # 连接mysql数据库的密码        'PASSWORD': '123456',        # mysql数据库的主机地址        'HOST': '127.0.0.1',        # mysql数据库的端口号        'PORT': '3306',  }}

模型

from django.db import modelsfrom shortuuidfield import ShortUUIDField# Create your models here.class User(models.Model):    id = models.IntegerField(primary_key=True)    username = models.CharField(max_length=100,null=True)    email = models.CharField(max_length=100, null=True)    elephone = models.CharField(max_length=100, null=True)    sex = models.BooleanField(null=True)    password = models.CharField(max_length=100, null=True)    avator = models.CharField(max_length=100, null=True)    count_stars = models.IntegerField(null=True)    self_introduction = models.CharField(max_length=100, null=True)    personal_quote = models.CharField(max_length=100, null=True)class category1(models.Model):    id = models.IntegerField(primary_key=True)    name = models.CharField(max_length=100,null=True)class category2(models.Model):    id = models.IntegerField(primary_key=True)    name = models.CharField(max_length=100,null=True)class category3(models.Model):    id = models.IntegerField(primary_key=True)    download_url = models.CharField(max_length=100,null=True)    introduction = models.CharField(max_length=100, null=True)    introduction_video_url = models.CharField(max_length=100, null=True)    classes = models.IntegerField(max_length=100, null=True)    logo = models.CharField(max_length=100, null=True)    count_stars = models.IntegerField(null=True)class algorithm(models.Model):    id = models.IntegerField(primary_key=True)    name = models.CharField(max_length=100,null=True)    user_id = models.IntegerField(null=True)    dataset_id = models.IntegerField(null=True)    download_url = models.CharField(max_length=100, null=True)    teaching_video_url = models.CharField(max_length=100, null=True)    count_stars = models.IntegerField(null=True)    score1 = models.FloatField(null=True)    score2 = models.FloatField(null=True)    score3 = models.FloatField(null=True)

import pymysqlpymysql.install_as_MySQLdb()

在这里插入图片描述

迁移

映射模型到数据库中: 将 ORM 模型映射到数据库中,总结起来就是以下几步:

  1. 在 settings.py 中,配置好 DATABASES ,做好数据库相关的配置。
  2. 在 app 中的 models.py 中定义好模型,这个模型必须继承自 django.db.models
  3. 将这个 app 添加到 settings.py 的 INSTALLED_APP 中。
  4. 在命令行终端,进入到项目所在的路径,然后执行命令 python manage.py makemigrations 来 生成迁移脚本文件。
  5. 同样在命令行中,执行命令 python manage.py migrate 来将迁移脚本文件映射到数据库中。

makemigrationsmigrate

在这里插入图片描述

serializers.py

from rest_framework import serializersfrom .models import Userfrom .models import category1from .models import category2from .models import category3from .models import algorithmclass UserSerializer(serializers.ModelSerializer):    class Meta:        model = User        fields= "__all__"class Category1Serializer(serializers.ModelSerializer):    class Meta:        model = category1        fields= "__all__"class Category2Serializer(serializers.ModelSerializer):    class Meta:        model = category2        fields= "__all__"class Category3Serializer(serializers.ModelSerializer):    class Meta:        model = category3        fields= "__all__"class AlgorithmSerializer(serializers.ModelSerializer):    class Meta:        model = algorithm        fields= "__all__"

views.py

from rest_framework import viewsetsfrom .models import User,category3,category2,category1,algorithmfrom .serializers import UserSerializer,Category1Serializer,Category2Serializer,Category3Serializer,AlgorithmSerializer# 这个视图函数已经包含了增删改查操作class UserViewset(viewsets.ModelViewSet):    queryset = User.objects.all()    serializer_class = UserSerializerclass Category1Viewset(viewsets.ModelViewSet):    queryset = category1.objects.all()    serializer_class = Category1Serializerclass Category2Viewset(viewsets.ModelViewSet):    queryset = category2.objects.all()    serializer_class = Category2Serializerclass Category3Viewset(viewsets.ModelViewSet):    queryset = category3.objects.all()    serializer_class = Category3Serializerclass AlgorithmViewset(viewsets.ModelViewSet):    queryset = algorithm.objects.all()    serializer_class = AlgorithmSerializer

urls.py

from rest_framework.routers import DefaultRouterfrom .views import UserViewset,AlgorithmViewset,Category1Viewset,Category2Viewset,Category3Viewsetrouter = DefaultRouter()router.register('user',UserViewset,basename='user')router.register('category1',Category1Viewset,basename='category1')router.register('category2',Category2Viewset,basename='category2')router.register('category3',Category3Viewset,basename='category3')router.register('algorithm',AlgorithmViewset,basename='algorithm')app_name = 'gen_model'urlpatterns = []+router.urls

urls.py

from django.contrib import adminfrom django.urls import path,includeurlpatterns = [    path('admin/', admin.site.urls),    path('gen_model/',include('apps.gen_model.urls'))]
上一篇:基于DRF的增删改查操作
下一篇:ElementUI select多级联动

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年05月01日 01时02分01秒