本文主要是介绍django db backends探索,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
由于需要解决django db长连接的问题,最近看了看django db backend相关实现,以及ORM。
一、django db 结构
django.db是django ORM的封装,主要由两部分构成:
- django.db.models。
- django.db.backends。
代码具体位置在在/usr/local/lib/python2.7/dist-packages/django/db。一般使用django db的方式:
from django.db import connection
cursor = connection.cursor()
cursor.execute('select sleep(1);');
其中
connection
定义在 django/db/__init__.py中:
connections = ConnectionHandler(settings.DATABASES)
router = ConnectionRouter(settings.DATABASE_ROUTERS)
connection = connections[DEFAULT_DB_ALIAS]
backend = load_backend(connection.settings_dict['ENGINE'])
二、db backend结构
1.base backend
backend 属于django.db的子目录,在django.db.backends/__init__.py定义 all backend-specific,里面有一些比较重要的类:
BaseDatabaseWrapper Represents a database connection,一些比较重要的数据库连接操作,如cursor(),close()在这个类中定义。
BaseDatabaseFeatures 一些特性开关,比如是否
这篇关于django db backends探索的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!