特点总结:

类名称---->数据库表名

类属性---->数据库字段

类的对象----->数据库表中的一行一行数据

3.ORM操作注意(理解)

1/因为SQLALChemy去app身上读取了配置信息,所以需要设置到app.config身上

2/数据库的链接信息

如果安装的是flask_mysqldb,那么连接信息:

mysql://root(用户名):mysql(密码)@127.0.0.1(ip地址):3306(端口号)/data36(数据库名字)

如果安装的是flask_pymysql,那么连接信息:

mysql+pymysql://root(用户名):mysql(密码)@127.0.0.1(IP地址):3306(端口号)/data36(数据库名字)

3/编写的模型类必须继承自db.Model才能被映射

4/如果不指定表名称,默认生成的就是模型类的小写,如果需要自己指定表名称使用__tablename__="表名称"

5/删除继承自db.Model的表db.drop_all()

6/ORM在进行映射的时候不能生成数据库的,我们需要在数据库中建立相对应的数据库.然后再进行ORM操作.

4.1增删改

全部都是使用db.session操作

常见方法:

db.session.add(obj)添加单个对象

db.session.delete(obj)删除单个对象

db.session.add_all([obj1,obj2])增加多个对象

db.session.commit()提交会话

db.drop_all()删除继承自db.Model的所有表

db.create_all()创建继承自db.Model的所有表

对象.属性 = 值 修改数据

其他:

db.session.rollback()回滚

db.session.remove()移除会话

查询语句:特点:模型.query

查询所有用户数据User.query.all()

查询有多少个用户User.query.count()

查询第1个用户User.query.all()[0]

User.query.filter(not_(User.name == 'wang')).all()

User.query.filter(or_(User.password == '123456',User.email.endswith('itheima.com'))).all()

User.query.filter(User.id.in_([1,3,5,7,9])).all()

查询所有用户数据,并以邮箱排序User.query.order_by(User.email).all()User.query.order_by(User.email.desc()).all()

每页3个,查询第2页的数据paginate = User.query.paginate(page, per_page,Error_out)paginate = User.query.paginate(2,3,False)page: 哪一个页per_page: 每页多少条数据Error_out: False 查不到不报错

paginate(page,per_page,Error_out)page表示要查询的页数,per_page表示每页有多少条数据,Error_out建议写成False,查不到不会报错

paginate.pages总页数

paginate.page当前页

paginate.items当前页数所有的对象

8.数据库懒查询lazy(了解)

解释:一旦使用了relationship和backref,那么系统会自动做子查询

子查询(subquery):查询了一方,就会自动的将关联的一方查询出来

动态查询(dynamic):只有用到了才去查询(得到一个结果集,只有你去获取才能得到)

lazy的使用:

users=db.relationship('多方的模型类',backref="role(自己随意命名)",lazy='dynamic')

session指定存储位置(理解)

定义:用来存储敏感信息,存储在服务器内部

设置:session[key]=value

获取:value=session.get(get)

注意点:设置SECRET_KET

指定session存储到redis中

操作流程

1/安装flask_sess

pip install flas_session

2/导入Session;类

from flask_session import Session

3/设置session相关的配置信息到app中

4/读取app身上的配置信息(和session相关的)

Session(app)

<设置app的配置信息>

app.config["SESSION_TYPE"]="redis"指定session的存储类型

app.config["SESSION_REDIS"]=StrictRedis()指定redis服务器地址

app.config["SESSION_USE_SIGNER"]=True设置session的签名信息

app.config["PERMANENT_SESSION_LIFETIME"]=timedelta(seconds=10)设置session在redis中的存储时间

session默认有效期是31天

expires有效期

g对象在一次请求中的所有的代码的地方,都是可以使用的

 

flask 框架 转载:https://cloud.tencent.com/developer/article/1465968的更多相关文章

  1. 有状态(Stateful)应用的容器化 - 云+社区 - 腾讯云 https://cloud.tencent.com/developer/article/1020178

    有状态(Stateful)应用的容器化 - 云+社区 - 腾讯云 https://cloud.tencent.com/developer/article/1020178

  2. flask 框架 转载:https://cloud.tencent.com/developer/article/1465949

    1.cookie.py """ - 解释: 用来保持服务器和浏览器交互的状态的, 由服务器设置,存储在浏览器 - 作用: 用来做广告推送 - cookie的设置和获取 - ...

  3. 我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=i5j7gwrxj9x5

    我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=i5j7gwrxj9x5

  4. 我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc

    我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc

  5. zookeeper选举状态介绍 摘自https://cloud.tencent.com/developer/news/303891

    zookeeper集群 配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服 ...

  6. Mui本地打包笔记(一)使用AndroidStudio运行项目 转载 https://blog.csdn.net/baidu_32377671/article/details/79632411

    转载 https://blog.csdn.net/baidu_32377671/article/details/79632411 使用AndroidStudio运行HBuilder本地打包的Mui项目 ...

  7. Scrapy框架的学习(6.item介绍以及items的使用(提前定义好字段名))转载https://blog.csdn.net/wei18791957243/article/details/86259688

      在Scrapy框架中的items.py的作用   1.可以预先定义好要爬取的字段     items.py import scrapy     class TencentItem(scrapy.I ...

  8. AutoFac控制反转 转载https://blog.csdn.net/u011301348/article/details/82256791

    一.AutoFac介绍 Autofac是.NET里IOC(Inversion of Control,控制反转)容器的一种,同类的框架还有Spring.NET,Unity,Castle等.可以通过NuG ...

  9. 爬虫出现Forbidden by robots.txt(转载 https://blog.csdn.net/zzk1995/article/details/51628205)

    先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决. 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息F ...

随机推荐

  1. python format函数/print 函数详细讲解(4)

    在python开发过程中,print函数和format函数使用场景特别多,下面分别详细讲解两个函数的用法. 一.print函数 print翻译为中文指打印,在python中能直接输出到控制台,我们可以 ...

  2. .net core中关于System.Text.Json的使用

    在.Net Framework的时候序列化经常使用Newtonsoft.Json插件来使用,而在.Net Core中自带了System.Text.Json,号称性能更好,今天抽空就来捣鼓一下. 使用起 ...

  3. VMware中安装Ubntu

    "懦夫没有能力去表现爱:爱是勇者的特权"----甘地 原文请见: https://blog.csdn.net/wumumang/article/details/54099997 一 ...

  4. Linux下指定so共享库的加载路径

    转载地址:https://blog.csdn.net/zorelemn/article/details/52596293,做了部分修改 一.库文件的搜索路径: 1.在配置文件/etc/ld.so.co ...

  5. DAO工具类的封装源码

    详细源码见下表,绝对原创,转载请注明出处! package com.ydj.util; import java.sql.Connection; import java.sql.PreparedStat ...

  6. java当中JDBC当中请给出一个sql server的helloworld例子

    [学习笔记] 1.sql server的helloworld例子: import java.sql.*; public class JdbcHelloSqlServer {  public stati ...

  7. ~postman全局变量与环境变量介绍

    postman官方文档:https://learning.getpostman.com/docs/postman/scripts/test_examples/ 一.环境变量 实例:将URL作为环境变量 ...

  8. PAT(B) 1088 三人行(Java)

    题目链接:1088 三人行 (20 point(s)) 参考博客:PAT (Basic Level) Practice (中文)1088 三人行 (20 分)(Java实现)吃口雪花 题目描述 子曰: ...

  9. Composer简介

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理器.是的,它涉及 "package ...

  10. HTML5 Notification

    H5的Notification特性 Web桌面通知 Notification API的通知接口用于向用户配置和显示桌面通知. 生产环境仅支持https下使用:否则会被默认禁止.开发环境可以在local ...