python環境下使用sqlalchemy和mysql搭建資料庫環境及編碼

來源:互聯網
上載者:User

標籤:python   sqlalchemy編碼   utf8   

為了相容中文和其他國家的文字,我們將編碼格式都設定為utf8

mysql設定utf8可以直接修改設定檔,或則通過命令列下的環境變數來進行設定

sqlalchemy設定編碼字元集一定要在資料庫訪問的URL上增加charset=utf8,否則資料庫的串連就不是utf8的編碼格式

eng = create_engine(‘mysql://root:[email protected]:3306/test2?charset=utf8‘,echo=True)

注意URL的後面部分

charset=utf8

這個很關鍵,除了上述兩處需要設定和修改的地方,另外python檔案需要將編碼格式設定為utf8(不帶BOM)的,這樣忘資料庫

直接儲存資料,就可以直接用‘中文‘ ,或則u‘中文‘來正確儲存到mysql資料庫中。

mysql資料庫在dos命令視窗中不能正確顯示中文,如果要查看utf8編碼格式的中文,最好是下載一個mysql的視覺化檢視。

目前我感覺不錯的mysql視覺化檢視是SQLyog。

下面是我寫的使用sqlalchemy寫入資料庫的demo代碼,可以參考參考。

#coding=utf-8from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class User(Base):__tablename__ = 'user2'id = Column(String(20),primary_key=True)name = Column(String(20))class School(Base):__tablename__ = 'school'id = Column(String(20), primary_key=True)name = Column(String(20))#建立從Base派生的所有表def createAll(eng):Base.metadata.create_all(eng)#刪除DB中所有的表def dropAll(eng):Base.metadata.drop_all(eng)#刪除資料庫中從Base派生的所有表#建立session對象if __name__ == '__main__':#建立資料庫引擎eng = create_engine('mysql://root:[email protected]:3306/test2?charset=utf8',echo=True)#設定回顯#eng.echo = True#建立DBSession類型DBSession = sessionmaker(bind=eng)#建立session對象session = DBSession()try:#建立表createAll(eng)#建立新User對象new_user = User(id='13', name='我еёжжщщщьфффтххмлл')print(u'你好嗎')#添加到sessionsession.add(new_user)#提交儲存到資料庫session.commit()except BaseException,e:print('e.message=%s' % str(e.message))finally:session.close()#eng.close()


python環境下使用sqlalchemy和mysql搭建資料庫環境及編碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.