48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
from flask_sqlalchemy import SQLAlchemy
|
||
|
|
||
|
from werkzeug.security import generate_password_hash
|
||
|
from werkzeug.security import check_password_hash
|
||
|
|
||
|
import datetime
|
||
|
|
||
|
db = SQLAlchemy()
|
||
|
|
||
|
class User(db.Model):
|
||
|
__tablename__ = "users"
|
||
|
|
||
|
id = db.Column(db.Integer, primary_key=True)
|
||
|
username = db.Column(db.String(25),unique=True)
|
||
|
wcaId = db.Column(db.String(10),nullable=True)
|
||
|
email = db.Column(db.String(50),unique=True)
|
||
|
password = db.Column(db.String(93))
|
||
|
create_at = db.Column(db.DateTime,default=datetime.datetime.now)
|
||
|
|
||
|
times=db.relationship("Time")
|
||
|
|
||
|
def __init__(self,username,wcaId,email,password):
|
||
|
self.username=username
|
||
|
self.wcaId=wcaId
|
||
|
self.email=email
|
||
|
self.password=self.__createPassword(password)
|
||
|
|
||
|
def __createPassword(self, password):
|
||
|
return generate_password_hash(password)
|
||
|
|
||
|
def verifyPassword(self,password):
|
||
|
return check_password_hash(self.password,password)
|
||
|
|
||
|
class Time(db.Model):
|
||
|
__tablename__="times"
|
||
|
id=db.Column(db.Integer,primary_key=True)
|
||
|
user=db.Column(db.Integer,db.ForeignKey("users.id"))
|
||
|
cube=db.Column(db.String(20))
|
||
|
time=db.Column(db.Integer)
|
||
|
displayTime=db.Column(db.String(15))
|
||
|
scramble=db.Column(db.String(320))
|
||
|
|
||
|
def __init__(self,user,cube,time,displayTime,scramble):
|
||
|
self.user=user
|
||
|
self.cube=cube
|
||
|
self.time=time
|
||
|
self.displayTime=displayTime
|
||
|
self.scramble=scramble
|