小奥姆

peewee的Python项目详细描述


http://media.charlesleifer.com/blog/photos/peewee3-logo.png

小便

小虫子是一种简单的小虫子。它有很少(但表达)的概念,使它易于学习和直观使用。

  • 一种小型的、有表现力的orm
  • python 2.7+和3.4+(使用3.6开发)
  • 支持sqlite、mysql和postgresql
  • extensions
https://travis-ci.org/coleifer/peewee.svg?branch=master

小便新手?这些可能有帮助:

示例

定义模型类似于django或sqlalchemy:

frompeeweeimport*importdatetimedb=SqliteDatabase('my_database.db')classBaseModel(Model):classMeta:database=dbclassUser(BaseModel):username=CharField(unique=True)classTweet(BaseModel):user=ForeignKeyField(User,backref='tweets')message=TextField()created_date=DateTimeField(default=datetime.datetime.now)is_published=BooleanField(default=True)

连接到数据库并创建表:

db.connect()db.create_tables([User,Tweet])

创建几行:

charlie=User.create(username='charlie')huey=User(username='huey')huey.save()# No need to set `is_published` or `created_date` since they# will just use the default values we specified.Tweet.create(user=charlie,message='My first tweet')

查询具有表现力和可组合性:

# A simple query selecting a user.User.get(User.username=='charlie')# Get tweets created by one of several users.usernames=['charlie','huey','mickey']users=User.select().where(User.username.in_(usernames))tweets=Tweet.select().where(Tweet.user.in_(users))# We could accomplish the same using a JOIN:tweets=(Tweet.select().join(User).where(User.username.in_(usernames)))# How many tweets were published today?tweets_today=(Tweet.select().where((Tweet.created_date>=datetime.date.today())&(Tweet.is_published==True)).count())# Paginate the user table and show me page 3 (users 41-60).User.select().order_by(User.username).paginate(3,20)# Order users by the number of tweets they've created:tweet_ct=fn.Count(Tweet.id)users=(User.select(User,tweet_ct.alias('ct')).join(Tweet,JOIN.LEFT_OUTER).group_by(User).order_by(tweet_ct.desc()))# Do an atomic updateCounter.update(count=Counter.count+1).where(Counter.url==request.url)

查看example twitter app

学习更多

查看documentation以获取更多示例。

具体问题?在irc.freenode.net上的“peewee”频道上闲逛,或者发邮件到邮件列表http://groups.google.com/group/peewee-orm。如果您想报告一个bug,请在github上create a new issue

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

推荐PyPI第三方库


热门话题
java有可能让Glassfish JAAS领域与一个已安装的应用程序共享一些类吗?   卸载weblogic时发生java log4j错误   java如何读取信息并将这些信息放入对象数组中   java线程池执行器。创建新线程时执行(Runnable命令)   java无法将project facet动态Web模块的版本更改为2.5   未添加到ArrayList Java Android的元素   javajavax。xml。绑定UnmarshaleException:意外元素(uri:,local:“ProcessCreditApplication”)。预期的元素是   java如何通过youtube API获取已删除视频的列表   如何在JavaBean验证中停止级联   java为什么我的ListView使我的应用程序崩溃,而不是列出我的条目?   java Guice多数据库自动切换   java(JDA)Mute命令在代码的第四行中断   推荐一种可通过Java中的随机访问进行更新的索引文件格式   java将arrayList添加到2x2 arrayList   java json对象数据发生变化,有时没有值   java使用Jedis库在redis中一次存储字符串列表   java快速排序分区   java setDaemon(false)是冗余的吗?   Java中的itext格式pdf