title: 迁移数据库 - yann学长的运维开发指南33
tags:
- python
categories: - 运维开发
keywords: 'python,tdd,web开发'
description: 操作数据库
date: 2018-05-24 21:21:09
说明
目前的进度及后续的课程

(html comment removed: more)
介绍
上节说到修改模板以显示多条记录,但并没有说完,现在补充余下的部分.
今天的具体内容如下:
- 代办事项传入模板
- 看不懂错误时换个方式
- 数据库位置
- 数据库迁移
- 修改模板中的序号表示
- 一点点小问题
代办事项传入模板
修改视图文件,传值到模板
vi lists/views.py

再次运行测试
python functional_tests.py
AssertionError: 'To-Do' not found in 'OperationalError at /'
看不懂错误时换个方式
在浏览器下打开页面 http://localhost:8000
no such table: lists_item
渲染完毕的浏览器报出了故障的原因:
找不到lists_item表
需要做数据库迁移了
数据库位置
数据库迁移只是一个说法,其实是用之前写好的建表文件在固定的地方来建立数据库
建库的位置是写在配置文件里的,默认在项目的基础目录
vi superlists/settings.py

数据库迁移
在项目的基础目录运行数据库迁移命令,其实大多数命令都是在这个目录下运行的
python manage.py migrate
刷新刚才打开的浏览器
AssertionError: '2: Use peacock feathers to make a fly' not found in ['1: Buy
peacock feathers', '1: Use peacock feathers to make a fly']
序号还是不对
修改模板中的序号表示
forloop.counter标签
vi lists/templates/home.html

再次运行,测试成功
一点点小问题
再次确认测试成功.结果发现每测一次,页面会多两条相同的数据
对于这个问题,目前先手动处理下
rm db.sqlite3
python manage.py migrate --noinput
预告
漫长的第五章终于完成了,周末我打算做一个大纲并附上链接,希望自己不要摸鱼^^
