Skip to content

Instantly share code, notes, and snippets.

@kmadac
Last active August 29, 2015 14:07
Show Gist options
  • Save kmadac/f935d426b97bed081d85 to your computer and use it in GitHub Desktop.
Save kmadac/f935d426b97bed081d85 to your computer and use it in GitHub Desktop.
PonyORM first try
from pony.orm import *
from datetime import date, datetime
db = Database('sqlite', ':memory:')
sql_debug(True)
class UhUser(db.Entity):
uname = PrimaryKey(unicode)
password_sha1 = Required(unicode)
email_contacts = Required(unicode)
phone_contacts = Required(unicode)
first_name = Required(unicode)
second_name = Required(unicode)
company_name = Required(unicode)
address = Required(unicode)
country = Required(unicode)
city = Required(unicode)
last_login = Required(datetime)
credit = Required(int)
currency = Required(unicode)
domains = Set("UhDomain")
admin = Required(bool)
class UhDomain(db.Entity):
name = PrimaryKey(unicode)
user = Required(UhUser)
dns_location = Required("UhDnsLocation")
created = Required(datetime)
expiration = Required(date)
class UhDnsLocation(db.Entity):
name = Required(unicode, unique=True)
domain = Set(UhDomain)
db.generate_mapping(create_tables=True)
@db_session
def create_dns_locations():
dns1 = UhDnsLocation(name="Digital Ocean")
dns2 = UhDnsLocation(name="Subreg.cz")
commit()
@db_session
def create_users():
user1 = UhUser(uname="theuser", password_sha1="xxx", email_contacts="[email protected]",
phone_contacts="0911999999", first_name="the", second_name="user",
company_name="SomeCompany", address="UserAddress", city="SomeCity",
country="Slovakia", last_login=datetime.now(), credit=0, currency="EUR",
admin=True)
create_dns_locations()
create_users()
with db_session:
print(select(dns for dns in UhDnsLocation)[:].show())
print("---")
print(select(u.last_login for u in UhUser)[:].show())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment