
使用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 模型映射到数据库中,总结起来就是以下几步:
- 在 settings.py 中,配置好 DATABASES ,做好数据库相关的配置。
- 在 app 中的 models.py 中定义好模型,这个模型必须继承自 django.db.models
- 将这个 app 添加到 settings.py 的 INSTALLED_APP 中。
- 在命令行终端,进入到项目所在的路径,然后执行命令
python manage.py makemigrations
来 生成迁移脚本文件。 - 同样在命令行中,执行命令
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'))]
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年05月01日 01时02分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我用wxPython搭建GUI量化系统之最小架构的运行
2021-05-10
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2021-05-10
selenium+python之切换窗口
2021-05-10
重载和重写的区别:
2021-05-10
搭建Vue项目步骤
2021-05-10
账号转账演示事务
2021-05-10
idea创建工程时错误提醒的是architectCatalog=internal
2021-05-10
SpringBoot找不到@EnableRety注解
2021-05-10
简易计算器案例
2021-05-10
在Vue中使用样式——使用内联样式
2021-05-10
Explore Optimization
2021-05-10
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
2021-05-10
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2021-05-10
小程序之wx:request(转)
2021-05-10
解决数据库报ORA-02289:序列不存在错误
2021-05-10
map[]和map.at()取值之间的区别
2021-05-11
成功解决升级virtualenv报错问题
2021-05-11
【SQLI-Lab】靶场搭建
2021-05-11