models.py 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. from datetime import datetime
  2. from app import db
  3. from werkzeug.security import generate_password_hash, check_password_hash
  4. class User(db.Model):
  5. id = db.Column(db.Integer, primary_key=True)
  6. username = db.Column(db.String(64), unique=True, nullable=False)
  7. password_hash = db.Column(db.String(256))
  8. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  9. def set_password(self, password):
  10. self.password_hash = generate_password_hash(password)
  11. def check_password(self, password):
  12. return check_password_hash(self.password_hash, password)
  13. class Carousel(db.Model):
  14. id = db.Column(db.Integer, primary_key=True)
  15. image_url = db.Column(db.String(256), nullable=False)
  16. link = db.Column(db.String(256))
  17. location = db.Column(db.String(20), nullable=False) # 'home', 'education', 'service'
  18. sort_order = db.Column(db.Integer, default=0)
  19. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  20. class StrategicCooperation(db.Model):
  21. id = db.Column(db.Integer, primary_key=True)
  22. name = db.Column(db.String(128), nullable=False)
  23. description = db.Column(db.Text)
  24. image_url = db.Column(db.String(256))
  25. link = db.Column(db.String(256))
  26. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  27. class Partner(db.Model):
  28. id = db.Column(db.Integer, primary_key=True)
  29. name = db.Column(db.String(128), nullable=False)
  30. image_url = db.Column(db.String(256))
  31. link = db.Column(db.String(256))
  32. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  33. class CaseCategory(db.Model):
  34. id = db.Column(db.Integer, primary_key=True)
  35. name = db.Column(db.String(64), nullable=False)
  36. section = db.Column(db.String(20), nullable=False) # 'education', 'service'
  37. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  38. cases = db.relationship('CooperationCase', backref='category', lazy='dynamic')
  39. class CooperationCase(db.Model):
  40. id = db.Column(db.Integer, primary_key=True)
  41. title = db.Column(db.String(128), nullable=False)
  42. image_url = db.Column(db.String(256))
  43. description = db.Column(db.Text)
  44. section = db.Column(db.String(20), nullable=False) # 'education', 'service'
  45. category_id = db.Column(db.Integer, db.ForeignKey('case_category.id'))
  46. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  47. class News(db.Model):
  48. id = db.Column(db.Integer, primary_key=True)
  49. title = db.Column(db.String(128), nullable=False)
  50. content = db.Column(db.Text) # Rich text
  51. image_url = db.Column(db.String(256))
  52. author = db.Column(db.String(64))
  53. publish_time = db.Column(db.DateTime, default=datetime.utcnow)
  54. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  55. class DevelopmentHistory(db.Model):
  56. id = db.Column(db.Integer, primary_key=True)
  57. year = db.Column(db.String(10), nullable=False)
  58. title = db.Column(db.String(128), nullable=False)
  59. description = db.Column(db.Text)
  60. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  61. class Honor(db.Model):
  62. id = db.Column(db.Integer, primary_key=True)
  63. title = db.Column(db.String(128), nullable=False)
  64. image_url = db.Column(db.String(256))
  65. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  66. class CompanyInfo(db.Model):
  67. id = db.Column(db.Integer, primary_key=True)
  68. intro_content = db.Column(db.Text)
  69. intro_image_url = db.Column(db.String(256))
  70. vision = db.Column(db.String(256))
  71. mission = db.Column(db.String(256))
  72. values = db.Column(db.String(256))
  73. phone = db.Column(db.String(64))
  74. email = db.Column(db.String(128))
  75. qrcode_url = db.Column(db.String(256))
  76. updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)