请确保您的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`` -- The raw SQL statement
``time`` -- How long the statement took to execute, in seconds.
connection.queries包括所有SQL语句 - INSERT,UPDATES,SELECT等。每次您的应用程序命中数据库时,将记录查询。请注意,此处记录的SQL可能在SQLite下未正确引用incorrectly quoted under SQLite
如果您使用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的支持。
没有。仅支持单列主键。
但这在实践中不是问题,因为没有什么阻止您添加其他约束(使用unique_together模型选项或直接在数据库中创建约束),并强制该级别的唯一性。需要单列主键来使管理界面工作;例如,您需要一种简单的方法来指定要编辑或删除的对象。
NoSQL数据库没有被Django本身正式支持。但是,有一些侧边项目和叉子允许Django中的NoSQL功能,如Django non-rel。
您也可以在维基页面上查看,其中讨论了一些替代方法。
2015年5月13日