做网站怎么上词,做网站需要哪些费用支出,代发关键词包收录,免费收录网站大全目前使用的环境#xff1a;django4.2.3#xff0c;python3.10
django通过一些第三方库#xff0c;可以轻易的自动生成一系列的后台数据。
首先先创建一个数据库#xff1a; 然后#xff0c;在setting.py中就可以指定我们新创建的数据库了。
DATABASES {default: {ENGI…目前使用的环境django4.2.3python3.10
django通过一些第三方库可以轻易的自动生成一系列的后台数据。
首先先创建一个数据库 然后在setting.py中就可以指定我们新创建的数据库了。
DATABASES {default: {ENGINE: django.db.backends.postgresql_psycopg2,NAME: machine_database_test,USER: root,PASSWORD: 123456,# The database server actually runs on the statusweb machine and# requires local authentication. This will work for both PAO and W2,# so this will save the settings_local.py need on W2.HOST: 127.0.0.1,}
} 然后需要执行数据迁移命令
python manage.py makemigrations
python manage.py migrate
最好在虚拟环境中执行这些内容会比较方便 然后顺便创建一个超级用户
python manage.py createsuperuser 然后看看需要下载的第三方包
pip install model_bakery
然后创建一个脚本一般情况都会放到一个app文件夹下。
脚本的名称也不重要我这里叫 baker_recipes.py文件内容如下
import os
import django
from model_bakery import bakeros.environ.setdefault(DJANGO_SETTINGS_MODULE, machine_database.settings)
django.setup()customers baker.make(machines.Repository, _quantity3)
这里有几个点需要注意
第一DJANGO_SETTINGS_MODULE 这个变量必须设置否则运行的时候会报错就像这样 第二django.setup() 一定要执行否则设置不生效。
第三baker.make()里面的第一个参数其实就是给定的model表的名称这里其实有两种写法
import os
import django
from model_bakery import baker
from machines.models import Repositoryos.environ.setdefault(DJANGO_SETTINGS_MODULE, machine_database.settings)
django.setup()customers baker.make(Repository, _quantity3)
官网上是这么介绍的.....
但是我这么做了然后就反复的报错.... 所以最好不要这么干就按照我上面的第一种写法可以不导入model直接以 app_name.model_name的方式直接用就好。
第四baker.make() 中的 _quantity 参数的意思是创建几个随机数据。
然后之所写这篇帖子是因为感觉这玩意儿真挺6的....
先看看我的models.py:
class Ethernet(models.Model):interface models.CharField(max_length32)class Meta:verbose_name_plural Ethernet Interfacesverbose_name Ethernet Interfaceclass Machine(models.Model):hostname models.CharField(max_length255, uniqueTrue)ethernets models.ManyToManyField(Ethernet, related_namemachine)def __str__(self):return %s % self.hostnameclass Meta:verbose_name_plural machinesordering [id]class Repository(models.Model):description models.TextField()machine models.ForeignKey(Machine, on_deletemodels.CASCADE)ethernet models.ForeignKey(Ethernet, on_deletemodels.CASCADE) 然后就能发现Repository 这张表跟两外两张表都有联系。所以我只需要在 baker.make()中指定 Repository 这张表就可以了由于它们之间的关联原因baker会直接生成3张表的相关数据的。
执行上面的脚本就可以了也很简单...
python baker_recipes.py
这里注意执行一遍就好....否则你执行2遍就是创建 6 组数据....
看看结果 可以吧确实都造出来了....只是随机数....比较长....稍微看起来有点费劲....
当然造随机数据的时候也可以不全部随机可以选择一些字段随机....
我就浅尝辄止....记录一下...更多的东西官网有感兴趣的小伙伴可以自己看看....
官网链接Basic Usage — Model Bakery 1.14.0 documentation