一、明确前后端分离和前后端不分离的概念:
我的理解:前后端不分离的概念是后端要控制前端的数据显示和模板渲染(django),它有一个缺点就是可复用性不强,也就是它的后端程序只适用于一种前端类型,比如返回的是网页模板,则它只能用于网页端,移动端要用只能重新渲染一个移动端的模板。
而前后端分离则解决了这一问题,它的可复用性极强,一个后端可对接多个类型的前端,因为它不使用模板,而是通过向前端传递json数据的方式,将页面渲染和显示数据交给前端去做。这样写出来的后端可以适用于任何类型的前端。
二、项目的数据库设计:
三、模型类设计
class BaseModel(object):
"""模型基类,为每个模型补充创建时间与更新时间"""
create_time = db.Column(db.DateTime, default=datetime.now) # 记录的创建时间
update_time = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now) # 记录的更新时间
class User(BaseModel, db.Model):
"""用户"""
__tablename__ = "ih_user_profile"
id = db.Column(db.Integer, primary_key=True) # 用户编号
name = db.Column(db.String(32), unique=True, nullable=False) # 用户暱称
password_hash = db.Column(db.String(128), nullable=False) # 加密的密码
mobile = db.Column(db.String(11), unique=True, nullable=False) # 手机号
real_name = db.Column(db.String(32)) # 真实姓名
id_card = db.Column(db.String(20)) # 身份证号
avatar_url = db.Column(db.String(128)) # 用户头像路径
houses &