不带orm的python sql和简单的迁移

baconql的Python项目详细描述


baconql
=


[![构建状态](https://travis-ci.org/lsenta/baconql.svg?branch=master)(https://travis ci.org/lsenta/baconql)

[![覆盖状态](https://coveralls.io/repos/github/lsenta/baconql/badge.svg?branch=master)(https://coveralls.io/github/lsenta/baconql?branch=master)




它提供了:

-一个没有orm或怪异python dsl的sql接口,
-一个简单的迁移系统,不需要模板。





尝试以下操作:
搜索“orm bad”。你读过这些文章吗?
然后,搜索“python sql”或“python sql without orm”。orms、orms和orms。

baconql试图提供一个无orm的库来与关系数据库进行交互。它不需要做抽象的工作,也不需要学习特定的python语法。你写sql,你就执行sql。

-baconql认为,在使用关系数据库时,sql是一个合适的工具。python dsl不算数。
-baconql在您的sql文件中使用简单的约定来定义(在编译时)
python模块中的数据库函数,
创建python和sql代码的干净分离。
-(这是从hugsql中偷来的,请参阅下面的注释)它提供:



:s
从用户中选择计数(*)


--列出全部:?:*
从用户中选择*

```


这是一个普通的sql文件,您的编辑器已经知道如何处理它并为您自动完成它。


baconql生成一个“user s.py”文件,您可以导入并“assert user.count(db)==42`.

但基本上:

-one file=one module
-one block=description header+sql body
-description header=name+操作类型(查询、变异、返回)+结果的基数(一个、多个、标量、受影响)






还有跟踪。

WIP。



所以sqlalchemy提供了与数据库交互的基础知识。
我想用一个更集中的库来代替它。处理打字似乎是一个棘手的部分。

如果你深入了解内部,你会发现它更多的是一个快速和肮脏的poc,而不是一个好的
思想的代码库。无论评论和问题是好是坏,我们都将非常感谢。

compatible
-[]设置许可证
-[]缩短本自述文件,添加用法文档和演示,
-[]找到避免重复每个参数类型的解决方案
-分析SQL以找出输入?
-允许用户提供默认的输入/输出映射,例如在执行“select*”时使用。
-[]add option为模块指定docstring和前缀(特殊导入)
-[]干净解析阶段,可能使用实语法(?),
-[]异常系统,以一致的方式增加行号,
-[]更多单元测试,
-[x]pypi ize,
-[]分成两个不同的项目。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java理解泛型   java Guava:如何自定义减少多重映射?   java无法构建实体管理器工厂JPA/Hibernate   不区分大小写的LDAP搜索   在java中同时调用所有类对象中的方法   java做高级数字计算?2.1k等于2100等。。?   java Camel netty组件:未能创建选择器   exceljava。lang.ClassCastException:ExcelStreamAction无法强制转换为com。开放交响乐团。xwork2。行动   java避免对嵌套a4j:区域进行验证   java如何使一帧在1秒内显示50次,每次显示时消失   java一个HashMap的遍历,我得到NullPointerException   windows HP Stream 8平板电脑。。。Java swing JScrollPane滚动在触摸屏上不工作   java如何在运行时根据用户/程序员的需要自动增加数组的大小?