Django框架+SQLite+SQLalchemy+ORM框架(Python)
在Django中,SQLite是默认数据库,SQLAlchemy是一个Python的数据库工具,Django的ORM(Object-Relational Mapping)提供了数据库的抽象层。以下是一个简单的例子,展示如何在Django项目中使用SQLite数据库和SQLAlchemy。
首先,确保你已经安装了Django和SQLAlchemy。
pip install django sqlalchemy
然后,在Django项目的settings.py
文件中配置SQLAlchemy:
# settings.py
# ...
# 引入SQLAlchemy
import sqlalchemy
# 创建SQLAlchemy配置对象
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # 使用SQLite数据库
'NAME': 'mydatabase', # 数据库文件名
}
}
# 配置SQLAlchemy连接
SQLALCHEMY_DATABASE_URI = sqlalchemy.engine.url.URL(
drivername='sqlite',
database=str(DATABASES['default']['NAME']),
)
接下来,定义模型并使用SQLAlchemy的Session对象来操作数据库:
# models.py
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 创建SQLAlchemy引擎
engine = create_engine(SQLALCHEMY_DATABASE_URI)
Session = sessionmaker(bind=engine)
session = Session()
# 定义模型
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String)
email = sqlalchemy.Column(sqlalchemy.String)
# 创建数据库表
Base.metadata.create_all(engine)
# 使用SQLAlchemy Session 对象操作数据库
def add_user(name, email):
user = User(name=name, email=email)
session.add(user)
session.commit()
def get_users():
return session.query(User).all()
在Django的视图中使用这些模型操作数据:
# views.py
from .models import add_user, get_users
def add_user_view(request):
add_user('Alice', 'alice@example.com')
return HttpResponse('User added')
def list_users_view(request):
users = get_users()
return render(request, 'users.html', {'users': users})
以上代码展示了如何在Django项目中结合使用SQLite、SQLAlchemy和ORM。这样的结合使得你可以同时使用Django的便利性和SQLAlchemy的灵活性。
评论已关闭