你肯定可以用 Django 做到这一点。
- python manage.py dumpdata > db.json
- 将数据库设置更改为新数据库,例如 PostgreSQL。
- python manage.py 迁移
- python manage.py shell
- 在shell中输入以下内容
from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
- python manage.py loaddata db.json
否则,如果您想修改自己的方式。
你需要安装 psycopg2
$ pip install psycopg2
然后你连接到 Postgres。
import psycopg2
conn = psycopg2.connect("host=localhost dbname=postgres user=postgres")
这是插入值的方式。
cur = conn.cursor()
insert_query = "INSERT INTO users VALUES {}".format("(10, 'hello@dataquest.io', 'Some Name', '123 Fake St.')")
cur.execute(insert_query)
conn.commit()
现在使用 SQLAlchemy,您可以轻松打开 SQLite 文件。
import sqlite3
conn = sqlite3.connect('database.db')
获取数据。
r = conn.execute("""SELECT * FROM books""")
r.fetchall()
这是从 SQLite 获取所有表的方法
数据库中的所有表名:
SELECT name FROM sqlite_master WHERE type = 'table'
sqlite_master 可以被认为是一个包含数据库信息(元数据)的表。
一种快速但很可能效率低下的方法(因为它将运行 700 个查询和 700 个单独的结果集)来获取表名列表,遍历这些表并返回数据 where columnA = "-":
for row in connection.execute('SELECT name FROM sqlite_master WHERE type = "table" ORDER BY name').fetchall()
for result in connection.execute('SELECT * FROM ' + row[1] + ' WHERE "columnA" = "-"').fetchall()
# do something with results
这是另一种方法
import sqlite3
try:
conn = sqlite3.connect('/home/rolf/my.db')
except sqlite3.Error as e:
print('Db Not found', str(e))
db_list = []
mycursor = conn.cursor()
for db_name in mycursor.execute("SELECT name FROM sqlite_master WHERE type = 'table'"):
db_list.append(db_name)
for x in db_list:
print "Searching",x[0]
try:
mycursor.execute('SELECT * FROM '+x[0]+' WHERE columnA" = "-"')
stats = mycursor.fetchall()
for stat in stats:
print stat, "found in ", x
except sqlite3.Error as e:
continue
conn.close()