最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python通過elixir包操作mysql數據庫實例代碼

 更新時間:2018年01月31日 15:54:51   作者:y2701310012  
這篇文章主要介紹了python通過elixir包操作mysql數據庫,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

本文研究的主要是python通過elixir包操作mysql數據庫的相關實例,具體如下。

python操作數據庫有很多方法,下面介紹elixir來操作數據庫。elixir是對sqlalchemy lib的一個封裝,classes和tables是一一對應的,能夠一步定義classes,tables和mappers,支持定義多個primary key。

定義model.py

from elixir import sqlalchemy 
from elixir import * 
 
engine =sqlalchemy.create_engine('mysql://root:root@localhost/') #the first root is the user, and the sencond root is the password 
#engine.execute("DROP DATABASE IF EXISTS elixir") 
engine.execute("CREATE DATABASE IF NOT EXISTS elixir") 
 
 
metadata.bind='mysql://root:root@localhost:3306/elixir' 
#metadata.bind.echo =True 
class Movie(Entity): 
  using_options(tablename='movies') 
 
  title = Field(Unicode(30),primary_key = True) 
  year = Field(Integer, primary_key = True) 
  description = Field(UnicodeText) 
  director = ManyToOne('Director') 
  genres = ManyToMany('Genre') 
  actor = ManyToMany('Actor') 
 
  def __repr__(self): 
    return '<Move "%s" (%d)>' % (self.title, self.year) 
 
class Person(Entity): 
  using_options(inheritance='multi') 
  using_options(tablename='person') 
 
  name = Field(Unicode(60)) 
 
  def __repr__(self): 
    return '<Person "%s">' % self.name 
 
 
class Director(Person): 
  using_options(inheritance='multi') 
  using_options(tablename='director') 
 
  movies = OneToMany('Movie') 
 
  def __repr__(self): 
    return '<Director "%s">' % self.name 
 
class Genre(Person): 
  using_options(inheritance='multi') 
  using_options(tablename='genre') 
 
  movies = ManyToMany('Movie') 
 
  def __repr__(self): 
    return '<Genre "%s">' % self.name 
 
class Actor(Person): 
  using_options(inheritance='multi') 
  using_options(tablename='actor') 
 
  movies = ManyToMany('Movie') 
 
  def __repr__(self): 
    return '<Actor "%s">' % self.name 

model_test.py

from model import * 
 
# setup_all(True) is equal to the following two staps: 
setup_all() # create sqlalchemy table object as mapper object for the class 
create_all() # take all table objcts and create real tables by issuing SQL statements on the databse. 
 
Actor1 = Actor(name=u"lvliang") 
scifi = Genre(name = u"Science-Fiction") 
rscott = Director(name = u"Ridley Scott") 
glucas = Director(name = u"George Lucas") 
alien = Movie(title = u"Alien", year = 1979, director=rscott, genres=[scifi, Genre(name=u"Horror")], actor = [Actor1]) 
brunner = Movie(title = u"Blade Runner", year = 1982, director = rscott, genres=[scifi]) 
swars = Movie(title = u"Star Wars", year = 1977, director = glucas, genres=[scifi]) 
session.commit() 
 
 
m1 = Movie.query.filter_by(title=u"Alien").one() 
m2 = Movie.query.filter(Movie.year>1980).all() 
m3 = Movie.query.filter(Movie.director.has(name = u"Ridley Scott")).all() 
m4 = Movie.query.filter(Movie.director.has(Director.name.endswith(u"Scott"))).all() 
m5 = Movie.query.filter(Movie.genres.any(name = u"Horror")).all() 
 
print m1 
print m2 
print m3 
print m4 
print m5 
 
d = Director.get_by(name = u"Ridley Scott") # Class.get_by(xxx) is a shortcut for Class.query.filter_by(xxx).first 
q = Movie.query.filter_by(director = d) #get all movies directed by director d 
m = q.filter_by(year = 1979).all() 
print "Movie direct by %s in year 1979 are " %(d.name) 
print m 
 
movies = q.order_by(sqlalchemy.desc(Movie.year)).all() 
print movies 
fro m in movies: 
  m.delete() 
session.commit() 

執(zhí)行model.py,結果為:

查看數據庫,結果為:

總結

以上就是本文關于python通過elixir包操作mysql數據庫實例代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • 利用Python實現文檔批量重命名

    利用Python實現文檔批量重命名

    日常工作中總會遇到一些需要收集文件的情況,但往往最后收集回來的文件名稱會五花八門,下面小編就來為大家講講如何使用Python實現批量重命名操作吧
    2025-02-02
  • Python RuntimeError: thread.__init__() not called解決方法

    Python RuntimeError: thread.__init__() not called解決方法

    這篇文章主要介紹了Python RuntimeError: thread.__init__() not called解決方法,需要的朋友可以參考下
    2015-04-04
  • python 利用openpyxl讀取Excel表格中指定的行或列教程

    python 利用openpyxl讀取Excel表格中指定的行或列教程

    這篇文章主要介紹了python 利用openpyxl讀取Excel表格中指定的行或列教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 關于Python 列表的索引取值問題

    關于Python 列表的索引取值問題

    這篇文章主要介紹了Python 列表的索引取值,本節(jié)重點掌握多次索引取值的語法:列表[索引][索引],結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Python從零打造高安全密碼管理器

    Python從零打造高安全密碼管理器

    在數字化時代,每人平均需要管理近百個賬號密碼,本文將帶大家深入剖析一個基于Python的高安全性密碼管理器實現方案,感興趣的小伙伴可以參考一下
    2025-04-04
  • 基于Python實現銀行卡識別的示例代碼

    基于Python實現銀行卡識別的示例代碼

    銀行卡識別是一個在金融、安全等領域具有重要應用的問題,本文主要為大家介紹了如何使用Python和深度學習技術來實現銀行卡識別功能,需要的可以參考下
    2024-03-03
  • python3爬蟲GIL修改多線程實例講解

    python3爬蟲GIL修改多線程實例講解

    在本篇內容里小編給大家整理的是一篇關于python3爬蟲GIL修改多線程實例講解內容,需要的朋友們可以參考下。
    2020-11-11
  • python 多線程實現檢測服務器在線情況

    python 多線程實現檢測服務器在線情況

    本文給大家分享的是Python使用多線程通過ping命令檢測服務器的在線狀況,給大家了內網和外網的2個例子,有需要的小伙伴可以參考下。
    2015-11-11
  • pycharm與cmd中制表符不一樣的問題解決

    pycharm與cmd中制表符不一樣的問題解決

    本文主要介紹了PyCharm和CMD中制表符寬度不同的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • python圖片灰度化處理的幾種方法

    python圖片灰度化處理的幾種方法

    灰度化處理是我們進行圖像處理的很重要的一個過程,本文主要介紹了python圖片灰度化處理的幾種方法,感興趣的可以了解一下
    2021-06-06

最新評論

伽师县| 罗平县| 阿鲁科尔沁旗| 嘉祥县| 潜江市| 星子县| 来安县| 丰城市| 扎鲁特旗| 永吉县| 轮台县| 集安市| 镇雄县| 柞水县| 封丘县| 平乐县| 洛隆县| 同江市| 辽宁省| 固镇县| 石城县| 永城市| 上虞市| 九江县| 巴楚县| 光泽县| 沂源县| 多伦县| 桂阳县| 水富县| 绍兴市| 福建省| 广南县| 黔西县| 阳东县| 罗江县| 乌拉特前旗| 长寿区| 宁波市| 柯坪县| 琼中|