本文将详细讲解Python的Django框架可适配的各种数据库介绍,包括可适配的数据库类型、如何配置、常用API等。同时,本文还包含两条示例说明,以帮助开发者更好地了解Django框架与数据库交互的过程。
可适配的数据库类型
Django框架支持多种不同的数据库类型,包括:
- PostgreSQL
- MySQL
- SQLite
- Oracle
- Microsoft SQL Server
通过配置settings.py文件中的DATABASES变量,可以轻松切换不同的数据库类型。例如:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '',
}
}
如何配置
首先,在安装Django框架后,需要在settings.py文件中进行数据库的配置。DATABASES变量是Django框架与数据库交互的核心变量,它包括了多个数据库连接信息(可以设置多个数据库连接)。
具体配置参数如下:
- ENGINE: 数据库引擎,Django框架保证可以保证ORM层兼容多种不同的引擎(例如postgresql_psycopg2、mysqlclient、sqlite3等)。
- NAME: 数据库ID。
- USER: 数据库用户名。
- PASSWORD: 数据库密码。
- HOST: 数据库主机地址。默认为 localhost。
- PORT: 数据库端口号。
示例代码:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '',
}
}
当DATABASES配置完成后,使用以下Python代码即可创建Django ORM层的数据表:
python manage.py migrate
常用API
Django框架提供了丰富的API,使用这些API可以轻松进行数据库操作。以下是常用的API:
创建对象
from myapp.models import MyModel
new_obj = MyModel.objects.create(name='John', age=20)
读取对象
from myapp.models import MyModel
obj = MyModel.objects.get(id=1)
更新对象
from myapp.models import MyModel
obj = MyModel.objects.get(id=1)
obj.name = 'Tom'
obj.save()
删除对象
from myapp.models import MyModel
obj = MyModel.objects.get(id=1)
obj.delete()
示例说明
以下两个示例将展示Django框架与PostgreSQL和MongoDB数据库的交互过程。
示例1:PostgreSQL
首先,需要安装Python下的psycopg2库,并配置DATABASES变量:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
接着,在models.py文件中定义模型:
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField(default=0)
然后,在命令行中使用以下命令创建表:
python manage.py migrate
现在可以在Python的交互式环境中,使用API与PostgreSQL进行数据交互:
In [2]: from myapp.models import MyModel
In [3]: new_obj = MyModel.objects.create(name='John', age=20)
In [4]: obj = MyModel.objects.get(id=1)
In [5]: obj.name, obj.age
Out[5]: ('John', 20)
In [6]: obj.name = 'Tom'
In [7]: obj.save()
In [8]: obj.delete()
示例2:MongoDB
首先,需要安装Python下的pymongo库,并配置DATABASES变量:
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine',
'NAME': 'mydatabase',
'USER': '',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '27017',
}
}
接着,我们需要在models.py文件中定义模型:
from djangotoolbox.fields import ListField
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField(default=0)
tags = ListField()
注意,在使用MongoDB时需要将模型中的ListField替换为djangotoolbox.fields.ListField。
接下来,在命令行中使用以下命令创建表:
python manage.py syncdb
现在可以在Python的交互式环境中,使用API与MongoDB进行数据交互:
In [2]: from myapp.models import MyModel
In [3]: new_obj = MyModel(name='John', age=20, tags=['tag1'])
In [4]: new_obj.save()
In [5]: obj = MyModel.objects.get(id=new_obj.id)
In [6]: obj.name, obj.age
Out[6]: ('John', 20)
In [7]: obj.tags
Out[7]: ['tag1']
In [8]: obj.tags.append('tag2')
In [9]: obj.save()
In [10]: obj.delete()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python的Django框架可适配的各种数据库介绍 - Python技术站