Excel不相邻列如何打印在一起-英雄云拓展知识分享
133
2023-11-07
【摘要】 本书摘自《Python+3自动化软件发布系统》一书中第4章,第5节,由陈刚、王洪军编著。
4.5.2 将应用数据表迁移进数据库
当编辑好上述文件之后,就可以将这个文件的变化反映到数据库中了。 ① 在 Windows 命令行里,进入 Manabe 的项目根目录,运行如下命令:
python manage.py makemigrations
这步,是将我们对于 Models 表设计的变化记入文件。
如果输入正确,则输出如下:
Migrations for 'appinput':
appinput\migrations
appinput\migrations\0001_initial.py
01_initial.py-Create model App
② 然后,再运行如下命令,将数据表进行变更。
python manage.py migrate
这步,是真正地将变化更新到数据库,同时,会记录下此次更新的内容。 输出如下:
Operations to perform:
Apply all migrations:admin,appinput,auth,contenttypes,sessions Running migrations:
Applying appinput.0001_initial...OK
③ 更改 admin.py 文件,将此数据表注册进后台管理系统 。
将 appinput 下面的 admin.py 文件更新为如下内容:
https://github.com/aguncn/manabe/blob/master/manabe/appinput/admin.py这个 admin.py 中还有很多显示和过滤的语法,在这里就不深入展开了,有需要 时,会再讲解这个知识点。
④ 进入 Django 后台,进行数据库操作。
通过浏览器,进入 Django 后台管理网址 http://127.0.0.1:8000/admin/, 可以
看到如图4-16所示的数据表,数据表可以在后台进行管理、增删等。
4.5.3 生成模拟数据
当一个数据表建好之后,有如下方式为这个数据表增加数据:
●直接通过SQL 语句,在数据库提供的Client工具中增加。
● 通过Django 提供的管理后台增加数据。
●可以自己写前端网页,让用户自助增加。
● 通过 Django 的开发框架,直接运行命令脚本来快速生成模板数据。
最后一种方法在以后进行数据库测试时是相当有用的。在开发期间,数据表的 变更是比较频繁的。如果有了快速生成模拟数据的命令,就不用每次辛辛苦苦地增 加模拟数据,或是每次都备份还原了。
我们最终想实现的,是用户每次运行 python manage.py fake_data 命令,就可以 自动地清空以前的数据表的内容,并将所有模拟数据重新入库。fake_data 是自定义 命令参数,那么,自定义命令要如何实现呢?
我们都用过 Django的 manage.py 的命令,而manage.py 是在我们创建 Django 项目的时候就自动生成在根目录下的一个命令行工具,它可以执行一些简单的命令, 其功能是将 Django project放到 sys.path 目录中,同时设置 DJANGO_SETTINGS_
MODULE 环境变量为 Manabe 目录下的 settings.py 文件。
manage.py 代码如下:
https://github.com/aguncn/manabe/blob/master/manabe/manage.py在这里脚本会根据 execute_from_command_line() 方法中传入的命令来执行相 应的结果。也就是说可以自己去编写这个函数可以识别的命令,这样就可以很大程 度上去拓展 manage.py 的功能了。
那么该如何去写这样一个自定义的 Manage 命令呢?
首先,要在Apps 模块下建立名字为 management 的模块,这样 Django 才能自动 发现我们的命令,在新建立的 management 模块中就可以建立我们需要的命令了,当 然了,不是所有的py 文件系统都会识别为命令的,只有引用了 BaseCommand 才能 被正确识别,而且我们的命令类要继承于 BaseCommand 才可以。
下面,我们就来一起实现它吧。
① 进入 public 目录,新建一个 management 目录。
② 在 management 目录下,生成一个空白的__init__.py 文件及一个 commands 目录。
③ 在 public\management\commands 目录下,生成一个空白文件及一个 fake. data.py.
④ 编辑 fake_data.py, 内容如下:
https://github.com/aguncn/manabe/blob/master/manabe/public/management/commands/fake
data.PY
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~