一、数据库抽象层
Web程序最常用的数据库就是关系型数据库,这种数据库使用的是结构化查询语言。
本书中使用的是数据库的抽象层,如SQLAlchemy这种。
SQLAlchemy比数据库更容易使用,性能差了一点,不过不是大型应用也没问题了。掌握它就可以把重心放到逻辑上,而不用分心去管那些具体的数据库语言了。
Flask-SQLAlchemy这个扩展包装了SQLAlchemy,安装它即可使用SQLAlchemy。
记得在配置数据库时要加上这样一句:
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 设置为True也行
定义模型:
记住一个模型就是一个Python类,类中的属性就是数据库表中的列。
如:
name = db.Column(db.String(64), unique=True)
#db.Column()是一个类,而name是这个类生成的实例,也是模型的属性(表中的列)。
在5.7关系这一小节当中,需要重点理解的内容有很多,尤其是那句“db.relationship()中的backref参数向User模型中添加一个role属性,从而定义反向关系。这一属性可替代role_id访问Role模型,此时获取的是模型对象,而不是外键的值。“
也就是说User.role_id得到的是roles表中的id值。而User.role得到的是整个Role模型,可以此知道User对应的Role有哪些列。
关于数据库的知识,还是看专门讲解数据库的书比较好。
应用不大的话,SQLAlchemy已经够了。
二、add_command
5-7中有
然后就可以在命令行使用命令了。
5-8中有
然后就可以在命令行使用数据库的迁移命令了。
这两者中的重点是add_command这个方法,不是很难,只是看得快很容易忽略它。经常看到就了解了。
三、邮件
关于第六章,其实不太难,只要跟着书上做就可以了,只是要注意一定要给FLASKY_ADMIN赋值,不然发不了邮件。
使用环境变量:
不要加引号
包括如MAIL_USERNAME和MAIL_PASSWORD后面都不要加引号。
前者是邮箱,后者是QQ邮箱的SMTP授权码。
如果学到了这里感觉到了困难,很有可能是学习贪快,以致根基不稳。
欲速则不达!千万不能留太多的困惑,准备以后解决。
更不能因为别人都说简单,自己就迫不及待往前冲,反而降低了效率。
原创:微信公众号
转载请注明来源
领取专属 10元无门槛券
私享最新 技术干货