我正在为项目使用Django。我有一个包含插入语句的.sql文件。如何将它们放入sqlite3数据库并使其与模型一起使用?
项目“ fortune”具有一个models.py文件,如下所示:
class fortune(models.Model):
id = models.IntegerField(primary_key=True)
category = models.CharField(max_length=50)
length = models.IntegerField()
aphorism = models.CharField(max_length=5000)
我有一个.sql文件,其中包含以下插入语句的列表:
INSERT INTO "fortune_fortune" VALUES(1,'fortunes',127,'Arbitrary Text');
当我在用项目配置的db.sqlite3文件上运行.schema时,我看到:
CREATE TABLE fortune_fortune(id integer, category varchar(50), length integer, aphorism varchar(5000));
我试过在我的sqlite shell中使用.read,但是没有运气。我也尝试在bash中键入“ sqlite3 file.sqlite3 <file.sql”。我在这里缺少一些东西,但是我似乎无法找出问题所在。
谢谢你的帮助。
好吧,等等..如果使用django,通常不使用sql语句将数据插入db。
要将数据插入db,请使用django ORM,它比这些难看的sql语句有趣得多。
fortune = fortune(category='new cat', length=19, aphorism='i love life')
fortune.save()
结果,您的数据库中的财富表中将有一个新行。只需阅读Django文档,您就会感到高兴!
还有一件事,类名总是大写。
对你的问题:
Django提供了一个钩子,用于传递数据库的任意SQL,该SQL在您运行migration时在CREATE TABLE语句之后执行。您可以使用此钩子来填充默认记录,也可以创建SQL函数,视图,触发器等。
挂钩很简单:Django只是sql/<modelname>.sql
在您的应用程序目录中查找名为的文件,其中<modelname>
的模型名称为小写字母。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句