C orm mysql_python操作mysql(ORM)

使用SQLAlchemy

47c1c2618812

安装方法

pip install SQLAlchemy

from sqlalchemy import create_engine

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy import Column, Integer, String ,DateTime, Boolean

# 连接数据库

engine = create_engine('mysql://root:password@localhost:3306/school?charset=utf8')

## 编码问题

# # 获取基类

Base = declarative_base()

class News(Base): # 继承基类

__tablename__ = 'students1'

id = Column(Integer, primary_key = True)

nickname = Column(String(20))

name = Column(String(20), nullable = False)

sex = Column(String(1))

in_time = Column(DateTime)

is_vaild = Column(Boolean)

idcard = Column(Integer, unique = True)

News.metadata.create_all(engine) # 创建表格

## 新增数据

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)

class OrmTest(object):

def __init__(self):

self.session = Session()

def add_one(self):

new_obj = News(

nickname = '123',

name = '321',

sex = '男',

)

self.session.add(new_obj)

self.session.commit()

return new_obj

def add_more(self):

new_obj = News(

nickname = '123',

name = '321',

sex = '男',

)

new_obj2 = News(

nickname = 'wei',

name = 'lai',

sex = '女',

)

self.session.add_all([new_obj,

new_obj2])

self.session.commit()

return new_obj

## 查询数据

def get_one(self):

return self.session.query(News).get(10) # get 是选id为2的

def get_more(self):

return self.session.query(News).filter_by(is_vaild=True)

## 修改数据

## 将一条当作多条的一种情况

def update_data(self):

data_list = self.session.query(News).filter(News.id >= 5)

for item in data_list:

if item:

item.is_vaild = 0

self.session.add(item) # 加入

self.session.commit() # 提交

## filter 与 filter_by 的区别

## 删除数据

def delete_data(self):

data = self.session.query(News).get(8)

if data:

self.session.delete(data)

self.session.commit()

else:

return False

def delete_data_more(self):

delete_list = self.session.query(News).filter(News.id <= 5)

for item in delete_list:

if item:

self.session.delete(item)

else:

return False

self.session.commit()

def main():

obj = OrmTest()

obj.add_one()

obj.add_more()

data = obj.get_one()

## 防止查询失误

if data:

print('ID:{0} {1}'.format(data.id,data.sex))

else:

print('Not exist')

data_more = obj.get_more()

print(data_more.count()) # 计数

for new_obj in data_more:

print('ID:{0} {1} {2} {3}'.format(new_obj.id,new_obj.sex,new_obj.name,new_obj.nickname))

obj.update_data()

print('数据修改成功')

obj.delete_data()

print('数据删除成功')

obj.delete_data_more()

if __name__ == '__main__':

main()

好的,让我来回答您的问题。 首先,Django 是一个流行的 Python Web 框架,它提供了许多强大的功能,其中之一就是 ORM(对象关系映射)。 ORM 允许您使用 Python 对象来处理数据库操作,而不是直接编写 SQL 语句。这样做有很多好处,比如更容易维护和更易于理解。 下面是一些基本的 ORM 操作,用于在 Django 中执行增删改操作。 首先,要使用 ORM,您需要在您的 Django 项目中创建一个模型。模型是一个 Python 类,它代表了数据库中的一个表。 例如,这是一个简单的模型类,它代表了一个名为 `Book` 的表: ``` from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) published_date = models.DateField() ``` 接下来,我们可以使用以下代码将一个新的 `Book` 对象插入到数据库中: ``` book = Book(title='Django for Beginners', author='William Vincent', published_date='2021-01-01') book.save() ``` 我们可以使用以下代码来更新一个现有的 `Book` 对象: ``` book = Book.objects.get(title='Django for Beginners') book.author = 'William S. Vincent' book.save() ``` 最后,我们可以使用以下代码来删除一个 `Book` 对象: ``` book = Book.objects.get(title='Django for Beginners') book.delete() ``` 这些是最基本的 ORM 操作,但是 Django ORM 还提供了许多其他的高级功能,比如过滤、排序和聚合查询等。如果您想了解更多信息,请查看 Django 的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值