国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

4 種 Python 連接 MySQL 數(shù)據(jù)庫(kù)的方法,速來學(xué)習(xí)!!

這篇具有很好參考價(jià)值的文章主要介紹了4 種 Python 連接 MySQL 數(shù)據(jù)庫(kù)的方法,速來學(xué)習(xí)!!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Python 連接到 MySQL 數(shù)據(jù)庫(kù)的方法不是很系統(tǒng),實(shí)際中有幾種不同的連接方法,而且不是所有的方法都能與不同的操作系統(tǒng)很好地配合。除此之外,啟用SSL也是一個(gè)挑戰(zhàn)。

本文涵蓋了四種方法,你可以用它們來連接你的Python應(yīng)用程序和MySQL。這些例子將使用PlanetScale,一個(gè)用于MySQL的無服務(wù)器數(shù)據(jù)庫(kù)平臺(tái)。

如果你需要一個(gè)免費(fèi)的數(shù)據(jù)庫(kù)來測(cè)試你的連接,PlanetScale是一個(gè)很好的選擇。PlanetScale建立在Vitess之上,為你提供一個(gè)熟悉的工作流程分支來測(cè)試和部署不同模式。

Vitess建于2010年,用于解決YouTube的擴(kuò)展問題。從那時(shí)起,這個(gè)開源項(xiàng)目持續(xù)增長(zhǎng),現(xiàn)在幫助一些公司,如Slack和Square處理他們的大規(guī)模數(shù)據(jù)擴(kuò)展需求。

你可以從下面注冊(cè)一個(gè)賬戶,獲得一個(gè)免費(fèi)的5GB數(shù)據(jù)庫(kù)。

添加鏈接描述

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

當(dāng)你進(jìn)入PlanetScale的儀表板。

在你的組織概覽儀表板上點(diǎn)擊 “創(chuàng)建新數(shù)據(jù)庫(kù)”。

給你的數(shù)據(jù)庫(kù)起個(gè)名字。

從下拉菜單中選擇一個(gè)區(qū)域。

點(diǎn)擊創(chuàng)建數(shù)據(jù)庫(kù)。

你的數(shù)據(jù)庫(kù)將被創(chuàng)建為一個(gè)主要的開發(fā)分支。你可以在這里進(jìn)行模式修改,一旦你準(zhǔn)備好了,就可以把它推廣到生產(chǎn)中。

獲取連接憑證

要生成連接憑證,必須做到以下步驟:

在你的數(shù)據(jù)庫(kù)概覽頁面上點(diǎn)擊 “連接”。

從 "連接方式 "下拉菜單中選擇 “Python”。

將憑證復(fù)制到你的Python應(yīng)用程序文件夾中的.env文件。

為了確保連接的安全性,PlanetScale使用了來自證書頒發(fā)機(jī)構(gòu)(CA)的證書,它是幾乎所有平臺(tái)上的系統(tǒng)根的一部分。當(dāng)連接到數(shù)據(jù)庫(kù)時(shí),你必須指定你信任的CA證書的路徑。注意,這個(gè)路徑取決于你的平臺(tái)。這里有一個(gè)跨越各種操作系統(tǒng)和發(fā)行版的常見路徑列表。

添加鏈接描述

如果你從PlanetScale儀表板上復(fù)制了證書,你已經(jīng)完成這一步,因?yàn)镻lanetScale會(huì)自動(dòng)檢測(cè)你的操作系統(tǒng)。

如果你使用的是Windows系統(tǒng),你需要下載根證書,然后用你所使用的驅(qū)動(dòng)程序的正確配置選項(xiàng)指向它們的位置。

用mysqlclient連接到MySQL

**mysqlclient包是用于MySQL的最流行的Python包之一。**它包含MySQLdb模塊,一個(gè)提供Python數(shù)據(jù)庫(kù)API的MySQL接口。

首先安裝mysqlclient。你可以通過兩種方式來完成這件事。

使用來自MySQL官方網(wǎng)站的安裝程序,它與你正在運(yùn)行的操作系統(tǒng)和SQL版本相匹配。
使用 pip 來安裝它。

pip install mysqlclient

在Linux上,你可能需要在安裝mysqlclient之前安裝Python3和MySQL開發(fā)頭文件和庫(kù)。

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

一旦你安裝了mysqlclient,你可以使用下面的代碼連接到數(shù)據(jù)庫(kù)。

import os
import MySQLdb # import the MySQLdb module
from dotenv import load_dotenv
load_dotenv()

# Create the connection object
connection = MySQLdb.connect(
    host=os.getenv("HOST"),
    user=os.getenv("USERNAME"),
    passwd=os.getenv("PASSWORD"),
    db=os.getenv("DATABASE"),
    ssl_mode="VERIFY_IDENTITY",
    ssl={
        'ca': os.getenv("SSL_CERT")
    }
)

# Create cursor and use it to execute SQL command
cursor = connection.cursor()
cursor.execute("select @@version")
version = cursor.fetchone()

if version:
    print('Running version: ', version)
else:
    print('Not connected.')

注意,你必須安裝 python-dotenv 并導(dǎo)入 os 模塊以訪問.env 文件中的數(shù)據(jù)庫(kù)憑證。

Windows用戶要注意,從wheel輪子文件中安裝的mysqlclient不支持ssl模式。由于你想確保數(shù)據(jù)庫(kù)連接是安全的,我們建議使用另一個(gè)驅(qū)動(dòng),比如mysql-connector-python。

這個(gè)例子使用連接來獲取數(shù)據(jù)庫(kù)的SQL版本,然后關(guān)閉連接。

其余的連接方法的語法與這個(gè)例子幾乎相同。這種類似的語法源于 Python 數(shù)據(jù)庫(kù) API 規(guī)范 (PEP 249),它鼓勵(lì)用于訪問數(shù)據(jù)庫(kù)的 Python 模塊之間的一致性。

用MySQL connector連接到MySQL

MySQL connector/Python模塊是Oracle支持的官方驅(qū)動(dòng),用于通過Python連接MySQL。該連接器完全是Python語言,而mysqlclient是用C語言編寫的。它也是獨(dú)立的,意味著它不需要MySQL客戶端庫(kù)或標(biāo)準(zhǔn)庫(kù)以外的任何Python模塊。

注意,MySQL Connector/Python不支持舊的MySQL服務(wù)器認(rèn)證方法,這意味著4.1之前的MySQL版本不能工作。

首先安裝mysql-connector-python模塊。建議使用pip來安裝它。

pip install mysql-connector-python

安裝后,使用以下代碼連接到MySQL:

i

mport os
from dotenv import load_dotenv
from mysql.connector import Error
import mysql.connector

load_dotenv()

connection = mysql.connector.connect(
host=os.getenv("HOST"),
database=os.getenv("DATABASE"),
user=os.getenv("USERNAME"),
password=os.getenv("PASSWORD"),
ssl_ca=os.getenv("SSL_CERT")
)

try:
    if connection.is_connected():
        cursor = connection.cursor()
    cursor.execute("select @@version ")
    version = cursor.fetchone()
    if version:
        print('Running version: ', version)
    else:
        print('Not connected.')
except Error as e:
    print("Error while connecting to MySQL", e)
finally:
    connection.close()

用PyMySQL連接到MySQL

PyMySQL包是另一個(gè)連接器,你可以用它來連接Python和MySQL。如果你追求速度,這是一個(gè)很好的選擇,因?yàn)樗萴ysql-connector-python快。

你可以使用 pip 來安裝它。

pip install PyMySQL

然后,使用以下連接代碼。

from dotenv import load_dotenv
import pymysql
import os
load_dotenv()
connection = pymysql.connect(
    host=os.getenv("HOST"),
    database=os.getenv("DATABASE"),
    user=os.getenv("USERNAME"),
    password=os.getenv("PASSWORD"),
    ssl_ca=os.getenv("SSL_CERT")
)
cursor = connection.cursor()
cursor.execute("select @@version ")
version = cursor.fetchone()
if version:
    print('Running version: ', version)
else:
    print('Not connected.')
connection.close()

用aiomysql連接到MySQL

aiomysql庫(kù)用于從asyncio框架訪問MySQL數(shù)據(jù)庫(kù)。除了是異步的特性之外,連接代碼與PyMySQL相似。注意,使用aiomysql需要Python 3.7以上版本和PyMySQL。

要使用aiomysql,首先要用安裝異步模塊。

pip install asyncio

然后,用以下方法安裝aiomysql。

pip install aiomysql

然后你可以使用以下代碼連接到MySQL。

import os
import asyncio
import aiomysql
import ssl

from dotenv import load_dotenv
load_dotenv()

ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ctx.load_verify_locations(cafile=os.getenv("SSL_CERT"))

loop = asyncio.get_event_loop()

async def connect_db():
   connection = await aiomysql.connect(
       host=os.getenv("HOST"),
       port=3306,
       user=os.getenv("USERNAME"),
       password=os.getenv("PASSWORD"),
       db=os.getenv("DATABASE"),
       loop=loop,
       ssl=ctx
   )
   cursor = await connection.cursor()
   await cursor.execute("select @@version")
   version = await cursor.fetchall()
   print('Running version: ', version)
   await cursor.close()
   connection.close()
loop.run_until_complete(connect_db())

總結(jié)

在數(shù)據(jù)庫(kù)中保存數(shù)據(jù)是應(yīng)用程序的共同特征之一。像Python一樣,大多數(shù)編程語言支持與不同數(shù)據(jù)庫(kù)的連接和交互。

本教程探討了Python與MySQL的連接。我們分享了可以使用的四種不同的常用連接方法,并在PlanetScale數(shù)據(jù)庫(kù)上使用SSL對(duì)它們進(jìn)行了測(cè)試,這是一個(gè)關(guān)鍵的步驟,因?yàn)樗梢苑乐怪虚g人攻擊。

我們回顧了每個(gè)連接方式的連接器是如何工作的,并展示了運(yùn)行它所需的代碼?,F(xiàn)在你已經(jīng)完成了這個(gè)實(shí)踐概述,你已經(jīng)準(zhǔn)備好將MySQL數(shù)據(jù)庫(kù)連接到Python應(yīng)用程序中了。文章來源地址http://www.zghlxwxcb.cn/news/detail-754799.html

到了這里,關(guān)于4 種 Python 連接 MySQL 數(shù)據(jù)庫(kù)的方法,速來學(xué)習(xí)??!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • IDEA連接MySQL數(shù)據(jù)庫(kù)的四種方法

    IDEA連接MySQL數(shù)據(jù)庫(kù)的四種方法

    首先右擊此電腦點(diǎn)擊管理,進(jìn)入頁面 ?再服務(wù)欄確保MySQL是正常運(yùn)行狀態(tài) 打開IDEA, 左邊欄選擇Maven Archetype,新建一個(gè)名為javaweb的新工程 進(jìn)行如圖編輯完成新建 ?在Main包下新建一個(gè)java包,右擊java包進(jìn)行下圖操作,java包擁有新建class的權(quán)限 在java下面新建一個(gè)HelloConnection1的類,

    2024年02月12日
    瀏覽(27)
  • Java連接mysql數(shù)據(jù)庫(kù)方法及代碼(jdbc)

    Java連接mysql數(shù)據(jù)庫(kù)方法及代碼(jdbc)

    編譯器使用IDEA 我的相關(guān)博客: java代碼程序中連接mysql數(shù)據(jù)庫(kù)的方法及代碼 mysql數(shù)據(jù)庫(kù)并發(fā)上鎖問題,java代碼 1.首先從mysql官網(wǎng)下載mysql-connector-java.jar包到本地。 這里注意要和你本地的mysql數(shù)據(jù)庫(kù)版本相匹配! 下載相應(yīng)的壓縮包,在本地解壓即可進(jìn)行下一步操作。 2.打開自己

    2024年02月08日
    瀏覽(95)
  • 【python】Django——連接mysql數(shù)據(jù)庫(kù)

    【python】Django——連接mysql數(shù)據(jù)庫(kù)

    筆記為自我總結(jié)整理的學(xué)習(xí)筆記,若有錯(cuò)誤歡迎指出喲~ 【Django專欄】 Django——django簡(jiǎn)介、django安裝、創(chuàng)建項(xiàng)目、快速上手 Django——templates模板、靜態(tài)文件、django模板語法、請(qǐng)求和響應(yīng) Django——連接mysql數(shù)據(jù)庫(kù) ORM(Object-Relational Mapping)是一種編程技術(shù),它允許開發(fā)者使用面

    2024年02月04日
    瀏覽(33)
  • Python小姿勢(shì) - Python連接MySQL數(shù)據(jù)庫(kù)

    Python小姿勢(shì) - Python連接MySQL數(shù)據(jù)庫(kù)

    Python連接MySQL數(shù)據(jù)庫(kù) Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語言。 Python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum),于1989年底圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié),決心開發(fā)一個(gè)新的腳本解釋程序,解釋程序當(dāng)時(shí)廣泛用于Unix系統(tǒng)上,Guido最初取名為“

    2024年02月04日
    瀏覽(20)
  • Python Django 之連接 Mysql 數(shù)據(jù)庫(kù)詳解

    Python Django 之連接 Mysql 數(shù)據(jù)庫(kù)詳解

    博客:https://blog.csdn.net/qq_34745941/article/details/122549376 若已安裝,請(qǐng)忽略。 主要使用的文件如圖 若 pip 安裝失敗,可進(jìn)入 Python 官方庫(kù)中下載 whl 文件,操作可參考: 博客:https://blog.csdn.net/qq_34745941/article/details/106341898 在 settings.py 中,配置 Mysql 的連接串 擴(kuò)展: Django 也支持其

    2024年02月04日
    瀏覽(26)
  • Python入門教程||Python3 MySQL 數(shù)據(jù)庫(kù)連接||

    本文我們?yōu)榇蠹医榻B Python3 使用?PyMySQL?連接數(shù)據(jù)庫(kù),并實(shí)現(xiàn)簡(jiǎn)單的增刪改查。 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個(gè)庫(kù),Python2 中則使用mysqldb。 PyMySQL 遵循 Python 數(shù)據(jù)庫(kù) API v2.0 規(guī)范,并包含了 pure-Python MySQL 客戶端庫(kù)。 在使用 PyMySQL 之前,我們

    2023年04月23日
    瀏覽(27)
  • 使用Python pymysql連接Mysql數(shù)據(jù)庫(kù)-菜鳥教程

    使用Python pymysql連接Mysql數(shù)據(jù)庫(kù)-菜鳥教程

    1、安裝pymysql模塊 pip install pymysql 2、啟動(dòng)Mysql數(shù)據(jù)庫(kù)服務(wù) net start mysql80 ?3、連接數(shù)據(jù)庫(kù) 運(yùn)行結(jié)果如下 ?4、創(chuàng)建數(shù)據(jù)庫(kù)表 執(zhí)行成功后,在本地登錄mysql數(shù)據(jù)庫(kù)進(jìn)行查看驗(yàn)證 ? 5、數(shù)據(jù)庫(kù)插入操作 ?執(zhí)行程序后在本地查看驗(yàn)證 ?6、數(shù)據(jù)庫(kù)查詢操作 Python查詢Mysql使用 fetchone() 方法

    2024年02月04日
    瀏覽(20)
  • 【JavaSE專欄90】用最簡(jiǎn)單的方法,使用 JDBC 連接 MySQL 數(shù)據(jù)庫(kù)

    【JavaSE專欄90】用最簡(jiǎn)單的方法,使用 JDBC 連接 MySQL 數(shù)據(jù)庫(kù)

    作者主頁 :Designer 小鄭 作者簡(jiǎn)介 :3年JAVA全棧開發(fā)經(jīng)驗(yàn),專注JAVA技術(shù)、系統(tǒng)定制、遠(yuǎn)程指導(dǎo),致力于企業(yè)數(shù)字化轉(zhuǎn)型,CSDN學(xué)院、藍(lán)橋云課認(rèn)證講師。 主打方向 :Vue、SpringBoot、微信小程序 本文講解了如何使用 JDBC 連接 MySQL 數(shù)據(jù)庫(kù),并給出了樣例代碼。JDBC 是 Java 語言訪問

    2024年02月11日
    瀏覽(24)
  • 如何用python連接mysql和mongodb數(shù)據(jù)庫(kù)【極簡(jiǎn)版】

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家?!緦毑厝肟凇?。 為了鞏固所學(xué)的知識(shí),作者嘗試著開始發(fā)布一些學(xué)習(xí)筆記類的博客,方便日后回顧。當(dāng)然,如果能幫到一些萌新進(jìn)行新技術(shù)的學(xué)習(xí)那也是極好的。作者菜菜一枚,文章

    2024年01月23日
    瀏覽(25)
  • python-Excel數(shù)據(jù)模型文檔轉(zhuǎn)為MySQL數(shù)據(jù)庫(kù)建表語句(需要連接數(shù)據(jù)庫(kù))-工作小記

    python-Excel數(shù)據(jù)模型文檔轉(zhuǎn)為MySQL數(shù)據(jù)庫(kù)建表語句(需要連接數(shù)據(jù)庫(kù))-工作小記

    將指定Excel文檔轉(zhuǎn)為create table 建表語句。該腳本適用于單一且簡(jiǎn)單的建表語句 呈現(xiàn)效果 ?代碼 ? 僅作為筆記記錄,如有問題請(qǐng)各位大佬來指導(dǎo)?

    2024年02月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包