Python 데이터베이스 스 크 립 트 업데이트 두 가지 방법 및 비교 소개
첫 번 째:python 의 MySQL db 모듈 을 사용 하여 원생 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()
데이터베이스 조회 세 가지 방식
# -*- 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:%[email protected]: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 로 데이터 관련 작업 을 한다.예 를 들 어 두 번 째 방법 중의 dbcommit_all()함수
2.두 번 째 방법 을 사용 하여 이 함 수 를 스 크 립 트 에 직접 복사 하면 됩 니 다.첫 번 째 방법 을 사용 하면 관련 함 수 를 다시 쓰 고 개발 시간 을 늘 리 며 정력 을 낭비 해 야 합 니 다.
3.프로젝트 에서 fllask 를 사용 하여 개발 하 는 경우 두 번 째 방법 으로 데이터 베 이 스 를 업데이트 하 는 것 을 추천 합 니 다.
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Python 데이터베이스 스 크 립 트 를 업데이트 하 는 두 가지 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.