小奥姆

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在jframe中模糊的背景上创建一个透明的矩形   java和super之间有区别。getX()和简单的x?   使用ant的java删除eclipse项目   java找不到。txt文件?   多线程Java wait()notify()   带按钮的java透明控件   java Android Studio 3无法构建我的项目   性能最佳(最快且节省内存)的Java收集/数据结构,可同时插入和删除项   spring+hibernate集成中的java ClassNotFoundException   java如何在Android上建立异步URL连接?   java当我选择contacts选项卡时,选项卡栏消失了   java根据数据库中的日期获取结果,不考虑时间   java如何访问WebChromeClient中的方法?   java如何在安卓中使用两行列表项?   spring Swagger Java日期格式验证引发异常