前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python连接数据库的两种方式

Python连接数据库的两种方式

作者头像
星哥玩云
发布2022-08-17 14:43:27
4480
发布2022-08-17 14:43:27
举报
文章被收录于专栏:开源部署

使用Python来操作数据库,第一时间都会想到MySQLdb这个库,但是个人感觉还是peewee库比较好用,写出来的代码更加规范、更加优美。这里其他功能就不多讲了,这次以truncate table为例子对比下两个库的差异!

使用MySQLdb库来连接的例子

#!/usr/bin/python #-*- coding:utf-8 -*- #__author__ == 'chenmingle'

import MySQLdb

mysql_db = {     "name": "test_db",     "host": "127.0.0.1",     "port": 3306,     "user": "root",     "pswd": "Password",     "charset": 'utf8' }

mydb = MySQLdb.connect(host=mysql_db['host'],     user=mysql_db['user'],     passwd=mysql_db['pswd'],     db=mysql_db['name']) cursor = mydb.cursor()

tables = ['domains_Conf','dnspod_Conf','jz_domains_Conf']

## create truncate query for tab in tables:     sql = 'truncate table %s' %(tab)     cursor.execute(sql)

mydb.commit() # execute truncate query cursor.close() mydb.close() print "Table truncated success!"

使用peewee库来连接mysql例子

#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'chenmingle'

from peewee import *

mysql_db = {     "name": "test_db",     "host": "127.0.0.1",     "port": 3306,     "user": "root",     "pswd": "Password",     "charset": 'utf8' }

db = MySQLDatabase(mysql_db['name'], host=mysql_db['host'], user=mysql_db['user'], passwd=mysql_db['pswd'],                   port=mysql_db['port'], charset=mysql_db['charset'])

class BaseModel(Model):     class Meta:         database = db         database.get_conn().ping(True)

class DomainsConf(BaseModel):     class Meta:             db_table = "domains_Conf"

    dns_id = PrimaryKeyField()     domain_id = IntegerField(index=True)     types = CharField(max_length=64, default='A')     hostname = CharField(max_length=64)     line = CharField(max_length=64, default='default')     ttl = CharField(max_length=64, default='600')     value = TextField()     status = CharField(max_length=32, default='ENABLE')

class DNSPODConf(BaseModel):     class Meta:         db_table = "dnspod_Conf"

    dns_id = PrimaryKeyField()     type = CharField(max_length=64, default='A')     name = CharField(max_length=64)     line = CharField(max_length=64, default='默认')     line_id = CharField(max_length=64, default='0')     ttl = CharField(max_length=64, default='60')     value = TextField()     status = CharField(max_length=32, default='1')

class JZDomainsConf(BaseModel):     class Meta:         db_table = "jz_domains_Conf"

    dns_id = PrimaryKeyField()     domain_id = IntegerField(index=True)     types = CharField(max_length=64, default='A')     hostname = CharField(max_length=64)     line = CharField(max_length=64, default='default')     ttl = CharField(max_length=64, default='600')     value = TextField()     status = CharField(max_length=32, default='ENABLE')

if __name__ == '__main__':     DomainsConf.truncate_table()     DNSPODConf.truncate_table()     JZDomainsConf.truncate_table()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档