示例#1
0
文件: api.py 项目: sbermeister/SPODS
## 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)
示例#2
0
文件: api.py 项目: sbermeister/SPODS
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.")