zoukankan      html  css  js  c++  java
  • 【python】用 sqlacodegen 将存在的数据库表 转化成model.py

    Flask的sqlalchemy对数据库表的模型提供了很多易用的方法。为了使用这些内容,需要将数据库表按照Flask识别的格式创建成Model,但是一般我们都是在已经创建好的数据库环境中开发Python代码,对于已经存在的数据库表,可以通过以下方式来生成models.py

    首先,安装

    pip install sqlacodegen

    然后,在命令行执行

    [python] view plain copy
     
     print?
    1. sqlacodegen --noviews --noconstraints --noindexes --outfile d:\models.py mysql://test:test@122.30.100.12:3388/test  

    --noviews 不对视图生成model

    --outfile 后面跟的是将生成的代码输出到哪个文件保存

    详细的参数信息可以查看帮助

    [python] view plain copy
     
     print?
    1. sqlacodegen --help  

    生成的文件就可以使用了,例如:

    [python] view plain copy
     
     print?
    1. import models  
    2. from sqlalchemy import Table, Column, Integer, String, Date, Float, create_engine  
    3. import config  
    4. from sqlalchemy.orm import sessionmaker  
    5. # DB class  
    6. import os,sys,inspect  
    7.   
    8. db = create_engine(config.DB_URI)  
    9.   
    10. S=sessionmaker(bind=db)  
    11. s=S()  
    12. u=s.query(DhBuyerTradeOrderPlace10).first()  
    13. if __name__ == '__main__':  
    14.     print u  
    15.     print u.username  
    16.     print "**************"  
    17.     classlist = []  
    18.     for name, obj in inspect.getmembers(models):  
    19.         if inspect.isclass(obj):  
    20.             print name  
    21.             print obj  
    22.             classlist.append((name.lower(),obj))  
    23.     print classlist  
    24.     print dict(classlist)  
    25.     classdict = dict(classlist)  
    26.     u=s.query(classdict['dhalbumsget10']).first()  
    27.     print u.username  
    28.     print u.password  
    29.     u=s.query(classdict['dhalbumsget10']).all()  
    30.     print u[0].username  
  • 相关阅读:
    原码/反码/补码详解
    树剖LCA讲解
    code vs 2166 Bessie的体重问题
    code vs 3376 符号三角形
    洛谷 P3078 [USACO13MAR]扑克牌型Poker Hands
    vjudge B
    POJ 1013 Counterfeit Dollar
    POJ 1008 Maya Calendar
    POJ 1006 Biorhythms
    POJ 3252 Round Numbers
  • 原文地址:https://www.cnblogs.com/yanglang/p/7428884.html
Copyright © 2011-2022 走看看