Flask学习之旅--数据库】的更多相关文章

一.写在前面 在Web开发中,数据库操作是很重要的一部分,因为网站的很多重要信息都保存在数据库之中.而Flask在默认情况下是没有数据库.表单验证等功能的,但是可以用Flask-extension为Web应用添加这些功能. 二.Flask SQLite SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统.由于Python对SQlite有内置的支持,因此在Flask应用程序中和SQLite进行交互是比较容易的. 首先需要创建一个SQLite数据库“user.db”,并在其中创建一…
Python 数据库框架 大多数的数据库引擎都有对应的 Python 包,包括开源包和商业包.Flask 并不限制你使用何种类型的数据库包,因此可以根据自己的喜好选择使用 MySQL.Postgres.SQLite.Redis.MongoDB 或者 CouchDB. 如果这些都无法满足需求,还有一些数据库抽象层代码包供选择,例如SQLAlchemy和MongoEngine.你可以使用这些抽象包直接处理高等级的 python 对象,而不用处理如表.文档或查询语言此类的数据库实体. 选择数据库框架的…
一.写在前面 其实之前已经写过一篇关于 Flask 中使用数据库的博客了,不过那一篇博客主要是记录我在使用 Flask + MySQL8.0 时所遇到的一些问题(如果用的不是 MySQL8.0估计就没有这么多问题了!).然后这一篇可以算作一份学习笔记了,也是关于在 Flask 中进行数据库操作的,感觉写这种学习笔记还是比较有用的,可以再学习一遍也就能更好的掌握了. 在使用 Flask 的时候,一般都会创建一个 model.py,然后在里面继承和创建模型,再迁移到数据库中,最后进行一些增删改查等操…
一.写在前面 正所谓“纸上得来终觉浅,方知此事要躬行”,在看文档和视频之余,我觉得还是要动手做点什么东西才能更好地学习吧,毕竟有些东西光看文档真的难以理解,于是就试着使用Flask框架做了一个简易留言板,实现了注册.登录和留言的功能. 二.开发环境 系统:Windows10 Python版本:Python3.7 Flask版本:Flask 1.0.2 MySQL版本:MySQL8.0 三.具体步骤 1.连接数据库 在做连接MySQL数据库的时候碰到了一堆问题,在上两篇博客中都有提到,这里就不多说…
数据库迁移是将代码中模型类(即表)的修改同步到数据库中, flask-sqlalchemy的模型类一旦使用create_all()映射到数据库中后,对这个模型类的修改(例如添加了一个新的字段)就不会再映射到数据库中了,这时候想要在数据库中得到新的表就需要删掉重新映射一次,可是这样做的话原先表中的数据也没了,这肯定是不行的,数据库中的数据怎么能随便删呢,而数据库迁移操作就完美解决了这个问题. 就像ORM操作有sqlalchemy和flask-sqlalchemy一样,数据库迁移也有alembic和…
Python中使用sqlalchemy插件可以实现ORM(Object Relationship Mapping,模型关系映射)框架,而Flask中的flask-sqlalchemy其实就是在sqlalchemy外进行了一层封装,使得在flask中使用起来更加方便,当然sqlalchemy的原有的方法也都可以使用.也就是说sqlalchemy在普通的Python程序中也可以使用,而flask-sqlalchemy是为flask“定制”的. 我这里使用的是MySQL数据库,Python3中对应的驱…
一.前言 现在开发一个网站,分页是一个很常见的功能了,尤其是当数据达到一定量的时候,如果都显示在页面上,会造成页面过长而影响用户体验,除此之外,还可能出现加载过慢等问题.因此,分页就很有必要了. 分页功能的常用的实现方法有两种:前台分页和后台分页.前台分页就是一次查询取出所有数据保存在内存中,需要的时候就从相应区间中取数据,但只适用于少量数据的情况.后台分页就是查询时只取出相应区间中的数据并返回,翻页时再次查询并取数据,此方法能减小传输压力提高性能.今天这篇博客就记录一下在 Flask 中怎么使…
1.CreateDatabaseIfNotExists: 2.DropCreateDatabaseIfModelChanges: 3.DropCreateDatabaseAlways: 4.Custom DB Initializer: public class SchoolDBContext: DbContext { public SchoolDBContext(): base("SchoolDBConnectionString") { Database.SetInitializer&…
Context类的基类构造函数有如下的参数 1.无参数 如果没有给基类构造函数添加参数,它会在local SQLEXPRESS server创建数据库,名为{Namespace}.{Context class name} namespace SchoolDataLayer { public class Context: DbContext { public Context(): base() { } } } 上面创建的数据库名称为:SchoolDataLayer.Context 2.参数为:数据…
一.写在前面 现在无论大大小小的网站,基本上都会使用验证码,登录的时候要验证,下载的时候要验证,而使用的验证码也从那些简简单单的字符图形验证码“进化”成了需要进行图文识别的验证码.需要拖动滑块的滑动验证码.甚至还有手机验证码.当你与之打交道的时候,有没有考虑过其背后的原理呢?当然了,对于那些复杂的验证码我们想要弄得一清二楚还是很难的,但是可以挑软柿子捏嘛--字符图形验证码,就这样,我决定用 Python + Flask 制作出一个简单的验证码系统来,话不多说,撸起袖子加油干! 二.基本思路 一个…