最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python中可以使用两种方法实现更新数据库脚本的示例

来源:动视网 责编:小采 时间:2020-11-27 14:23:24
文档

python中可以使用两种方法实现更新数据库脚本的示例

python中可以使用两种方法实现更新数据库脚本的示例:最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新。第一种:使用python的MySQLdb模块利用原生的sql语句进行更新import MySQLdb #主机名 HOST = '127.0.0.1' #用户名 USER
推荐度:
导读python中可以使用两种方法实现更新数据库脚本的示例:最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新。第一种:使用python的MySQLdb模块利用原生的sql语句进行更新import MySQLdb #主机名 HOST = '127.0.0.1' #用户名 USER


最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新。

第一种:使用python的MySQLdb模块利用原生的sql语句进行更新

import MySQLdb
#主机名
HOST = '127.0.0.1'
#用户名
USER = "root"
#密码
PASSWD = "123456"
#数据库名
DB = "db_name"
# 打开数据库连接
db=MySQLdb.connect(HOST,USER,PASSWD,DB)
# 获取操作游标
cursor=db.cursor()

if __name__ == '__main__':

 if cursor:
 command_a = "update tables_one set status=5 where status=0"
 # 使用execute方法执行SQL语句
 cursor.execute(command_a)
 # 提交到数据库执行
 db.commit()

 command2 = "select field from tables_one where id =12"
 ret2 = cursor.execute(command2)
 # 获取所有记录列表
 ret2=cursor.fetchall()
 for item in ret2:
 command3 = "insert into tables_two(name) values (%s);" % (item[0])
 fin=cursor.execute(command3)
 db.commit()
 # 关闭数据库连接
 db.close()

数据库查询三种方式

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象

  • fetchall():接收全部的返回结果行.

  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

  • 第二种:使用python的框架flask和sqlalchemy进行更新

    # -*- coding:utf-8 -*-
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    from sqlalchemy.sql import text
    
    HOST = '127.0.0.1'
    USER = "root"
    PASSWD = "123456"
    DB = "carrier_test"
    CHARTSET = "utf8"
    
    app = Flask(__name__,instance_relative_config = True)
    #链接数据库路径
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://%s:%s@127.0.0.1:3306/%s?charset=%s' %(USER,PASSWD,DB,CHARTSET)
    #如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
    #如果设置成 True,SQLAlchemy 将会记录所有 发到标准
    输出(stderr)的语句,这对调试很有帮助。 app.config['SQLALCHEMY_ECHO'] = False # 数据库连接池的大小。默认是数据库引擎的默认值 (通常是 5)。 app.config['SQLALCHEMY_POOL_SIZE'] = 6 db = SQLAlchemy(app) class Table_one(db.Model): __tablename__ = 'table_one' id = db.Column('id', db.Integer, primary_key=True, autoincrement=True) com_name = db.Column('com_name', db.String(30), nullable=False) com_about = db.Column('com_about', db.String(200), nullable=False) def __repr__(self): return '<table_one com_name %r>' % self.com_name class Table_two(db.Model): __tablename__ = 'table_two' id = db.Column('id', db.Integer, primary_key=True, autoincrement=True) reason = db.Column('reason', db.String(128), nullable=True) create_time = db.Column('create_time', db.TIMESTAMP, server_default=text('now()')) status = db.Column('status', db.Integer, nullable=False, default=0) def __repr__(self): return '<table_two id %r>' % self.id def db_commit_all(lists): try: db.session.add_all(lists) db.session.commit() return 'SUCCESS' except Exception,e: return 'Fail!!!' def commits_to_three_judge(): com_sta_obj = Table_one.query.filter_by(com_name='只是测试使用,不用关心表间关系').all() for ite in com_sta_obj: ship_obj = Table_two.query.filter_by(id=ite.id).first() if ship_obj: if int(ship_obj.status) == 2: ite.status = 0 print db_commit_all([ite]) print '表同步结束' 64 if __name__=='__main__': #执行更新数据库函数 commits_to_three_judge()

    两种方式对比:

    1.在实际项目中,数据库的更新 需要用到很多相关函数进行数据的收集,判断是否满足条件等,而这些相关函数在项目中都是用 Sqlalchemy进行数据相关操作,比如第二种方法里的db_commit_all()函数

    2.使用第二种方法,直接复制这些函数到脚本中即可,如果使用第一种方法,则需要重写相关函数,增加开发时间,浪费精力。

    3.如果项目中是使用flask进行开发,推荐使用第二种方法进行数据库更新。

    文档

    python中可以使用两种方法实现更新数据库脚本的示例

    python中可以使用两种方法实现更新数据库脚本的示例:最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新。第一种:使用python的MySQLdb模块利用原生的sql语句进行更新import MySQLdb #主机名 HOST = '127.0.0.1' #用户名 USER
    推荐度:
    标签: 方法 更新 数据库
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top