确保你的Django DEBUG
设置被设置为 True
。然后执行以下操作:
>>> from django.db import connection
>>> connection.queries
[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls',
'time': '0.002'}]
connection.queries
仅在以下情况下才可用 DEBUG
是 True
。它是按查询执行顺序排列的字典列表。每本词典都有以下内容:
sql
-原始SQL语句
time
-语句执行所用的时间(秒)。
connection.queries
包括所有SQL语句——插入、更新、选择等。每次应用程序访问数据库时,都会记录查询。
如果您正在使用 multiple databases 的每个成员上使用相同的接口。 connections
词典:
>>> from django.db import connections
>>> connections["my_db_alias"].queries
如果您需要在功能中的任何时刻手动清除查询列表,请调用 reset_queries()
,如下所示:
from django.db import reset_queries
reset_queries()
看看Django对 schema migrations
.
如果您不介意清除数据,您的项目 manage.py
效用有 flush
选项将数据库重置为它在 migrate
被处决。
不支持。只支持单列主键。
但这在实践中不是问题,因为没有什么可以阻止您添加其他约束(使用 unique_together
模型选项或直接在数据库中创建约束),并在该级别强制执行唯一性。管理界面等内容的正常运行需要单列公钥;例如,您需要一个值来指定要编辑或删除的对象。
Django本身不正式支持NoSQL数据库。然而,Django中有许多副项目和分支允许NoSQL功能。
你可以看看 the wiki page 其中讨论了一些项目。
我们尽量避免在django代码中添加特殊情况,以适应所有特定于数据库的选项,如表类型等。如果要使用这些选项中的任何一个,请使用 RunSQL
包含 ALTER TABLE
做你想做的事的陈述。
例如,如果您正在使用MySQL并希望您的表使用MyISAM表类型,请使用以下SQL:
ALTER TABLE myapp_mytable ENGINE=MyISAM;
7月 22, 2024