## SESSIONS ## def generate_key(): import hashlib, random return hashlib.sha1(str(random.random())).hexdigest() def get_ip(): from os import environ return environ.get('REMOTE_ADDR') fields = [ Field('id', int, pk=True), Field('key', str, default=generate_key), Field('ip', str, default=get_ip) ] sessions_table = Table('session', fields) Session = link_table(sessions_table, con, session_field='key', force_session=True) ## USERS ## def encrypt_password(s): from hashlib import sha224 return sha224(sha224(sha224(s).hexdigest()).hexdigest()).hexdigest() fields = [ Field('id', int, pk=True), Field('username', str), Field('password', str, in_mask=encrypt_password), Field('favourite_color', str) ] users_table = Table('user', fields) User = link_table(users_table, con)
from table_linker import link_table from json_api import handle_request, serve_api ### import sqlite3 con = sqlite3.connect("test.db") fields = [ Field('id', int, pk=True), Field('title', str), Field('isbn', str), Field('condition', str) ] books_table = Table('book', fields) Book = link_table(books_table, con) fields = [ Field('id', int, pk=True), Field('name', str), Field('age', int), Field('happy', bool) ] people_table = Table('person', fields) Person = link_table(people_table, con) Person.has_one(Book) def check_credit(**kw): if 'credit_card' not in kw or not kw['credit_card'].isdigit(): raise Exception("Please enter a valid credit card number.")