如何使用Django自带的DBMS;如何生成批量数据(数据库管理系统)这里以mysql为例

如何使用Django自带的DBMS;如何生成批量数据(数据库管理系统)这里以mysql为例

1、Django自带的DBMS管理数据库

step 1

创建好django项目,应用后,通过cmd命令窗口创建数据库

mysql> create database crmsystem;

然后再回到django项目文件下的 init__.py模块里写上(前提是先安装上了pymysql模块)

import pymysql
pymysql.install_as_MySQLdb()

step 2

在项目settings.py模块,配置好数据库信息,settings.py关于数据库的配置如下

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'crmsystem',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '666666'
    }
}

step 3

再回到应用目录下的models.py模块,在里面通过ORM创建好需要的数据表,示例只有一个简单的数据表,可根据需求来。

class Userinfo(models.Model):
	""
	员工表
	""
    username = models.CharField(max_length=12)
    password = models.CharField(max_length=32)
    telephone = models.CharField(max_length=11)
    email = models.EmailField()
    active = models.BooleanField(default=False)
	
	#源类写法不能改变,verbose_name_plural字段为管理系统呈现的字段
    class Meta:
        verbose_name_plural = '公司员工表'

step 4

在应用目录下的admin.py模块中导入models.py模块,再注册之前创建好的数据表

from 应用目录 import models

admin.site.register(models.Userinfo)

step 5

通过终端台输入

#先输入
python manage.py makemigrations

#后输入
python manage.py migrate

step 6

在通过终端后台创建超级用户

python manage.py createsuperuser

#输入用户名和密码即可,邮箱处直接回车跳过

然后打开路由设置,开启

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

step 7

打开浏览器输入127.0.01/admin/即可访问,登录成功后就可以管理所创建的数据

2、批量生成数据

在django项目根目录下创建一个.py文件,名字自拟。这里是createdata.py。在createdata.py文件中写入以下代码(下面的数据表我用的是另一个,根据自己要创建的数据表内容字段来)运行即可。

if __name == "__main__":
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'superCRM.settings')
    import django
    django.setup()
    from sales import models
    
    source_type = (('qq', "qq群"),
                   ('referral', "内部转介绍"),
                   ('website', "官方网站"),
                   ('baidu_ads', "百度推广"),
                   ('office_direct', "直接上门"),
                   ('WoM', "口碑"),
                   ('public_class', "公开课"),
                   ('website_luffy', "路飞官网"),
                   ('others', "其它"),)

    course_choices = (('LinuxL', 'Linux中高级'),
                      ('PythonFullStack', 'Python高级全栈开发'),)
    
    obj_list = []
    #生成200条数据
    for i in range(200):
        d = {
            'qq':str(11111+i),
            'name':'dz技师%s'%i,
            'source':source_type[random.randint(0,8)][0],  #来源
            'course':course_choices[random.randint(0,1)][0],  #咨询课程
        }
        obj = models.Customer(**d)
        obj_list.append(obj)
    models.Customer.objects.bulk_create(obj_list)

posted @ 2021-02-15 21:45  ChenXiDylan  阅读(108)  评论(0)    收藏  举报