python测试开发django-177.启动项目添加初始化数据(fixtures的使用)
2021/12/15 17:18:00
本文主要是介绍python测试开发django-177.启动项目添加初始化数据(fixtures的使用),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
当启动 django 项目的时候,有些表需要添加一些初始化数据,比如省份需先添加到数据库里面。
可以使用django 的fixtures 来初始化表的数据。
准备初始化数据
外面可以项目启动后表里面添加的初始化数据写成 JSON,XML 或 YAML (要求已安装 PyYAML)格式。
数据的准备可以使用 manage.py dumpdata
命令生成,参考前面一篇https://www.cnblogs.com/yoyoketang/p/15692968.html
这里有一个简单的yoyo.person 表perso.json数据
[ { "model": "yoyo.person", "pk": 1, "fields": { "name": "yoyo", "age": 111 } }, { "model": "yoyo.person", "pk": 2, "fields": { "name": "yoyo2", "age": 22 } }, { "model": "yoyo.person", "pk": 3, "fields": { "name": "yoyo23", "age": 33 } }, { "model": "yoyo.person", "pk": 4, "fields": { "name": "yoyo", "age": 22 } } ]
以下是一样的初始化内容,perso.yml格式:
- model: yoyo.person pk: 1 fields: name: yoyo age: 111 - model: yoyo.person pk: 2 fields: name: yoyo2 age: 22 - model: yoyo.person pk: 3 fields: name: yoyo23 age: 33 - model: yoyo.person pk: 4 fields: name: yoyo age: 22
loaddata 加载数据
加载数据非常简单:只需调用 manage.py loaddata
每次你运行 loaddata,数据都会从固定内容读出,重新装入数据库。这意味着若你修改了某个固定内容创建的行,随后再次运行 loaddata ,你会丢掉所有的修改。
# 将 person.json 中数据库导入数据库 python manage.py loaddata person.json
Django 从哪里寻找固定内容文件
默认情况下,Django 在每个应用的 fixtures 目录中查找固定内容。你可以将配置项 FIXTURE_DIRS 设为一个 Django 需要额外寻找的目录列表。
manage.py loaddata 时,你也能指定一个到固定内容文件的路径,这将会覆盖查找常规目录的行为。
方式1:
在 app 下创建一个 fixtures 目录
json文件数据放到fixtures 目录
这样在执行loaddata 命令的时候,会默认从每个应用目录查找初始化的内容
python manage.py loaddata person.json
方式2:
如果不想放到app下的fixtures目录,也可以在setting文件配置FIXTURE_DIRS,用于 Django 需要额外寻找的目录列表
FIXTURE_DIRS = ('/path/to//fixtures/',)
方式3:
manage.py loaddata 时,你也能指定一个到固定内容文件的路径,这将会覆盖查找常规目录的行为。
参考官方文档https://docs.djangoproject.com/zh-hans/2.2/howto/initial-data/
这篇关于python测试开发django-177.启动项目添加初始化数据(fixtures的使用)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门