models.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. title_image_url = db.Column(db.String(256))
  17. element_image_url = db.Column(db.String(256))
  18. tag_text = db.Column(db.String(64))
  19. title_content = db.Column(db.Text)
  20. description = db.Column(db.String(256))
  21. link = db.Column(db.String(256))
  22. location = db.Column(db.String(20), nullable=False) # 'home', 'education', 'service'
  23. sort_order = db.Column(db.Integer, default=0)
  24. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  25. class StrategicCooperation(db.Model):
  26. id = db.Column(db.Integer, primary_key=True)
  27. name = db.Column(db.String(128), nullable=False)
  28. description = db.Column(db.Text)
  29. image_url = db.Column(db.String(256))
  30. link = db.Column(db.String(256))
  31. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  32. class Partner(db.Model):
  33. id = db.Column(db.Integer, primary_key=True)
  34. name = db.Column(db.String(128), nullable=False)
  35. image_url = db.Column(db.String(256))
  36. link = db.Column(db.String(256))
  37. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  38. class CaseCategory(db.Model):
  39. id = db.Column(db.Integer, primary_key=True)
  40. name = db.Column(db.String(64), nullable=False)
  41. section = db.Column(db.String(20), nullable=False) # 'education', 'service'
  42. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  43. cases = db.relationship('CooperationCase', backref='category', lazy='dynamic')
  44. class CooperationCase(db.Model):
  45. id = db.Column(db.Integer, primary_key=True)
  46. title = db.Column(db.String(128), nullable=False)
  47. image_url = db.Column(db.String(256))
  48. description = db.Column(db.Text)
  49. section = db.Column(db.String(20), nullable=False) # 'education', 'service'
  50. category_id = db.Column(db.Integer, db.ForeignKey('case_category.id'))
  51. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  52. class News(db.Model):
  53. id = db.Column(db.Integer, primary_key=True)
  54. title = db.Column(db.String(128), nullable=False)
  55. content = db.Column(db.Text) # Rich text
  56. image_url = db.Column(db.String(256))
  57. author = db.Column(db.String(64))
  58. publish_time = db.Column(db.DateTime, default=datetime.utcnow)
  59. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  60. class DevelopmentHistory(db.Model):
  61. id = db.Column(db.Integer, primary_key=True)
  62. year = db.Column(db.String(10), nullable=False)
  63. title = db.Column(db.String(128), nullable=False)
  64. description = db.Column(db.Text)
  65. image_url = db.Column(db.String(256))
  66. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  67. class Honor(db.Model):
  68. id = db.Column(db.Integer, primary_key=True)
  69. title = db.Column(db.String(128), nullable=False)
  70. image_url = db.Column(db.String(256))
  71. created_at = db.Column(db.DateTime, default=datetime.utcnow)
  72. class SectionTitle(db.Model):
  73. id = db.Column(db.Integer, primary_key=True)
  74. section_key = db.Column(db.String(50), unique=True, nullable=False)
  75. section_name = db.Column(db.String(50), nullable=False) # e.g. "战略合作版块"
  76. title = db.Column(db.String(100), nullable=False)
  77. subtitle = db.Column(db.String(256))
  78. icon_url = db.Column(db.String(256))
  79. class PageContent(db.Model):
  80. id = db.Column(db.Integer, primary_key=True)
  81. page_key = db.Column(db.String(50), unique=True, nullable=False) # 'products', 'solutions', 'education', 'service'
  82. page_name = db.Column(db.String(50), nullable=False)
  83. content = db.Column(db.Text)
  84. updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
  85. class CompanyInfo(db.Model):
  86. id = db.Column(db.Integer, primary_key=True)
  87. intro_banner_url = db.Column(db.String(256))
  88. intro_content = db.Column(db.Text)
  89. intro_image_url = db.Column(db.String(256))
  90. vision = db.Column(db.String(256))
  91. mission = db.Column(db.String(256))
  92. values = db.Column(db.String(256))
  93. phone = db.Column(db.String(64))
  94. email = db.Column(db.String(128))
  95. qrcode_url = db.Column(db.String(256))
  96. updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)