def signin(db):
    session = bottle.request.environ.get('beaker.session')
    username = bottle.request.forms.username.strip().lower()
    email = bottle.request.forms.email.strip().lower()
    username_re = re.compile(r'^[_0-9A-Za-z]{5,20}$')
    email_re = re.compile(r'^[a-zA-Z0-9._%-+]+@[a-zA-Z0-9._%-]+.[a-zA-Z]{2,6}$')
    password = bottle.request.forms.password
    if not username_re.match(username):
        return {'ok':False,'msg':u"Имя пользователя должно быть не менее 5 и \
не более 20 символов, и содержать латинские буквы и цифры и знак подчеркивания"}
    if not email_re.match(email):
        return {'ok':False, 'msg': u"Неправильный формат e-mail"}
    if len(password) < 6:
        return {'ok':False,'msg':u"Пароль должен содержать не менее 7 символов"}
    user = db.query(User).filter(or_(User.name==username,User.email==email)).first()
    if not user:
        new_user = User(name = username, 
                        password=hashlib.sha256(password).hexdigest(),
                        email = email)
        new_user_notebook = Notebook(name=u"Блокнот", deflt=True)
        new_user_notebook.user = new_user
        new_note = Note(text=u"Добро пожаловать в Notebook!", title=u"Первая заметка");
        new_user_notebook.notes.append(new_note);
        db.add(new_user)
        db.commit()
        session['user_id'] = new_user.id
        return {'ok':True, 'msg':u"Пользователь {0} создан.".format(new_user.name)}
    else:
        return {'ok':False,'msg':u"Пользователь с таким именем или адресом e-mail уже существует"}
    os.unlink('database.sqlite')
except OSError:
    pass
Base.metadata.create_all(db.engine)

def pwd_hash(t):
    return hashlib.sha256(t).hexdigest()

Session = sessionmaker(bind=db.engine)
session = Session()
admin_user = User(name="admin", admin=True, password=hashlib.sha256("admin").hexdigest(), email="*****@*****.**" )
ntb = Notebook( name=u"Блокнот", deflt=True, published=False)
ntb.notes = [ 
                Note(title=u'Заголовок заметки', text=u"Добро пожаловать, admin")
            ]
ntb.user = admin_user
session.add(admin_user)
session.commit()        

#fill database

f = open('/usr/share/dict/words')
allwords = []
users = []
for a in f:
    if 7 < len(a) < 10:
        allwords.append(a.strip().lower())
    if len(a) == int(random.uniform(8,1500)):
        if(len(a) < 12):
            users.append(a.strip().lower())
f.close()