python & MySQLdb(two)

来源:https://www.cnblogs.com/kk328/archive/2018/11/03/9901579.html
-Advertisement-
Play Games

實現python封裝# encoding=utf8import MySQLdb#定義類class MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'): self.host=host self.port=p... ...


實現python封裝

# encoding=utf8
import MySQLdb

#定義類
class MysqlHelper():
    def __init__(self,host,port,db,user,passwd,charset='utf8'):
       self.host=host
       self.port=port
       self.db=db
       self.user=user
       self.passwd=passwd
       self.charset=charset
     #初始化設置連接

    def connect(self):
        self.conn=MySQLdb.connect(host=self.host,port=self.port,db=self.db,user=self.user,passwd=self.passwd,charset=self.charset)
        self.cursor=self.conn.cursor()
    #進行連接

    def close(self):
        self.cursor.close()
        self.conn.close()
     #關閉連接


    def get_one(self,sql,param=()):
        result=None
        try:
            self.connect()
            self.cursor.execute(sql,param)
            result=self.cursor.fetchone()
            self.close()
        except Exception as e:
            print(e)
        return result
    #查找一行

    def get_all(self,sql,param=()):
        list=()
        try:
            self.connect()
            self.cursor.execute(sql,param)
            list=self.cursor.fetchall()
            self.close()
        except Exception as e:
             print(e)
        return list
    #查找全部數據


    def insert(self,sql,param=()):
        return self.__edit(sql,param)
    #返回插入數據

    def update(self,sql,param):
        return self.__edit(sql,param)
    #返回更改後數據

    def delete(self,sql,param):
        return self.__edit(sql,param)
    #返回刪除數據

    def __edit(self,sql,param):
        count=0
        try:
            self.connect()
            count=self.cursor.execute(sql,param)
            self.conn.commit()
            self.close()
        except Exception as e:
            print(e)
        return count

實現添加操作:

#encoding=utf8
from fengzhaung import *

sql="insert into stu(stu_name,stu_hometown,gender) values(%s,%s,%s)"
stu_name=input("輸入姓名")
stu_hometown=input("請輸入家鄉:")
gender=input("輸入性別,1男,0女:")
param=[stu_name,stu_hometown,bool(gender)]
mysqlh=MysqlHelper('192.168.65.146',3306,'student','root','toor')
count=mysqlh.insert(sql,param)
if count==1:
    print ('ok')
else:
    print('error')

實現查找:

#encoding=utf8
from fengzhaung import *
#id=input("輸入編號")
sql="select * from stu where stu_id=1"
helper=MysqlHelper('192.168.65.146',3306,'student','root','toor')
s=helper.get_one(sql)
print(s)

最後還有一點小問題,怎麼自主輸入進行查找??試了幾種辦法,發現不行。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 圖形 概述 隨著大量的監控數據被採集到Zabbix中,如果用戶可以以可視化的表現形式來查看發生了什麼事情,那麼和僅僅只有數字的表現形式比起來則更加輕鬆。 以下是進行圖形設置的地方。圖形可以一目瞭然地掌握數據的流向並關聯問題,發現某件事情開始,或在某件事情可能變成問題事件時進行報告。 Zabbix為用 ...
  • 下載jdk-版本號.tar.gz 解壓到/usr/local/ vi /etc/profile 最後一行添加如下內容: export JAVA_HOME=/usr/local/jdk-版本號export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAV ...
  • 搭建LNMP環境的時候,在安裝完Nginx後啟動測試Nginx服務時發現報如下錯誤: nginx: [emerg] getpwnam("nginx") failed 這是由於沒有創建nginx用戶導致的,解決辦法就是創建一個nginx用戶 說明:這裡創建的用戶是你安裝Nginx時,預編譯時指定的Ng ...
  • 為了增強無人機與地面站之間的傳輸信號,組裡買了這款WiFi信號接收器,無奈只有Windows和Mac OS版本的驅動程式。後來不知道從哪裡得來的一個偏方可以安裝Ubuntu下的驅動,特此記錄。 內核降級 安裝Ubuntu下的驅動只支持到4.4的內核,一般現在安裝的Ubuntu預設內核都是4.15了, ...
  • 1. 說明 本文檔針對docker swarm操作。 針對的系統是以一個本地的測試系統為例。其中機器信息如下,172.16.1.13作為docker swarm的管理機。 本地測試的機器列表信息: 主機名 模擬的外網 內網IP 要部署模塊 mini01 10.0.0.11 172.16.1.11 t ...
  • 新電腦安裝了Ubuntu 14.04,但是網路連接中只有乙太網而沒有WiFi的選項. 打開System Setting系統設置-Software&Updates軟體&更新-Additional Drivers附加驅動,無法載入出相應的驅動,更換為國內源也無法顯示出相應的驅動. 打開Terminal使 ...
  • 1.背景 互聯網從來就不是一個安全的地方。很多時候我們過分依賴防火牆來解決安全的問題,不幸的是,防火牆是假設“壞人”是來自外部的,而真正具有破壞性的攻擊事件都是往往都是來自於內部的。 近幾年,在thehackernews等網站上總會時不時看到可以看到一些因為數據安全問題被大面積攻擊、勒索的事件。在H ...
  • 原文地址:https://blog.csdn.net/u011583336/article/details/80999043 之前工作中用的資料庫多是ms sqlserver,偶爾用到mysql都是運維配置好 ,今天心血來潮,在本地電腦安裝了一個mysql8.**的版本。建好表測試的時候發現報錯。c ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...