![深入理解Django:框架内幕与实现原理](https://wfqqreader-1252317822.image.myqcloud.com/cover/14/43738014/b_43738014.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.3.1 在Django中执行原生SQL语句
在Django中执行原生SQL语句的操作非常简单,在3.2节的最后演示了如何导入connections模块来执行SQL语句,这就是一种简单的执行原生SQL语句的方式。另外,在django/db/__init__.py中还提供了connection变量,它的定义如下:
![](https://epubservercos.yuewen.com/7EA2B2/23020638109733406/epubprivate/OEBPS/Images/42188_131_1.jpg?sign=1739256108-JveQQeNxagT7Wow2KJecyR1GTWHfZyZ4-0-9a1b1d1b5d0a0aa823450f694a6a6e9a)
其中,DEFAULT_DB_ALIAS变量在前文中已有介绍,它的值正是'default'字符串。根据在DefaultConnectionProxy类中定义的魔法函数可以很明确地知道:connection从代码角度来看正是connections['default']。下面继续在python manage.py shell命令行中演示对connection的操作,代码如下:
![](https://epubservercos.yuewen.com/7EA2B2/23020638109733406/epubprivate/OEBPS/Images/42188_131_2.jpg?sign=1739256108-IIiwkC5B9ON0edsXJOG3SUYNTPgudzuJ-0-9a45c208d7095c295fa8d6b88d221622)
![](https://epubservercos.yuewen.com/7EA2B2/23020638109733406/epubprivate/OEBPS/Images/42188_132_1.jpg?sign=1739256108-hRI8EwPvGpevbsdj1BnJYf0FGFOrwG8B-0-8cda72a231d2b0249fc647bf89335965)
上面演示了如何使用Django内置变量connection执行原生SQL语句来操作数据库。这些操作背后的原理在3.2节中已经分析得很清楚了,不再赘述。