Flask-SQLAlchemy官方文档

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://user:pwd@localhost/school?charset=utf8'

db = SQLAlchemy(app) # 初始化一个对象

class News(db.Model):
__tablename__ = 'wyNews' # WYnews 表的名字
# 表的结构:
id = db.Column(db.Integer,primary_key=True)
title = db.Column(db.String(200),nullable=False)
content = db.Column(db.String(20000),nullable=False)
types = db.Column(db.String(10),nullable=False)
image = db.Column(db.String(300),)
author = db.Column(db.String(20),)
view_count = db.Column(db.Integer,default=1)
create_at = db.Column(db.DateTime,)
is_valid = db.Column(db.Boolean,)

def __repr__(self):
return '<News %r>' % self.title

# 创建表
# db.create_all() #

# 添加数据
new_obj1 = News(
title = 'A1',
content = 'I an A1',
types = '阿里',
)
new_obj2 = News(
title = 'A2',
content = 'I an A2',
types = '阿里',
)

# db.session.add(new_obj1) # 添加数据
# db.session.add(new_obj2)
# db.session.commit()

News.query.filter(News.is_valid==1) # 查询数据

# 只获取需要的字段
News.query.with_entities(News.title,News.author).all()
db.session.query(News.title,News.author).all()

News.query.get(1)
Out[90]:
<News '幽游白书外传「Two Shots」动画化决定,讲述藏马和飞影的相遇!'>
News.query.get(1).id
Out[91]:
1

# 通过filter方法取得到的是BaseQuery,可以理解为一个列表,里面存储了数据库中的一条一条记录,那么你要取列表中的值,就必须先通过first等方法取出里面的对象"News" ,然后才能操作对象的属性
News.query.filter_by(id=1)
Out[92]:
<flask_sqlalchemy.BaseQuery at 0x60b36a0>

News.query.filter_by(id=1).first()
Out[3]:
<News '幽游白书外传「Two Shots」动画化决定,讲述藏马和飞影的相遇!'>

Flask-SQLAlchemy操作指南的更多相关文章

  1. flask SQLAlchemy中一对多的关系实现

    SQLAlchemy是Python中比较优秀的orm框架,在SQLAlchemy中定义了多种数据库表的对应关系, 其中一对多是一种比较常见的关系.利用flask sqlalchemy实现一对多的关系如 ...

  2. flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作

    flask, SQLAlchemy, sqlite3 实现 RESTful API, 同时支持form操作. 前端与后台的交互都采用json数据格式,原生javascript实现的ajax.其技术要点 ...

  3. flask建表遇到的错误: flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes')

    error:flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specifie ...

  4. Flask – SQLAlchemy成员增加

    目录 简介 结构 展示 技术 运行 代码 创建数据库表单 views视图 home主页 添加成员addnew.html 展示页show_all 简介 结构 $ tree -I "__pyca ...

  5. Flask+SQLAlchemy+alembic+Flask-RESTful使用

    前言 其实准备把这篇删掉,先写Flask-restful相关的,后来想想大体框架还是先写出来,这两天踩了很多坑,有的谷歌也没有答案.一直摸索也总算是开始了. 正文 SQLAlchemy/alembic ...

  6. flask SQLALchemy外键及约束

    from flask import Flask,session from flask_sqlalchemy import SQLAlchemy import config app = Flask(__ ...

  7. python3 + flask + sqlalchemy +orm(3):多对多关系

    一篇文章有多个tag,一个tag也可以属于多篇文章,文章和tag存在多对多关系 config.py DEBUG = True #dialect+driver://root:1q2w3e4r5t@127 ...

  8. python3 + flask + sqlalchemy +orm(2):数据库中添加表

    往数据库中添加一张保存文章的表,表明为article,字段有id,title,content 同样一个配置文件:config.py DEBUG = True #dialect+driver://roo ...

  9. python3 + flask + sqlalchemy +orm(1):链接mysql 数据库

    1.pycharm中新建一个flask项目 2.按装flask.PyMySQL.flask-sqlalchemy 3.项目下面新建一个config.py 文件 DEBUG = True #dialec ...

  10. Flask SQLAlchemy & model

    Flask-SQLAlchemy Flask-SQLAlchemy库让flask更方便的使用SQLALchemy,是一个强大的关系形数据库框架,既可以使用orm方式操作数据库,也可以使用原始的SQL命 ...

随机推荐

  1. vue---自定义指令的使用

    在vue开发项目中,指令的使用场景也是比较多的,那么该如何定义使用呢? 找到 src / directive 下新建 gender 目录,下面新建 index.js 和 gender.js index ...

  2. 史上最全的 DB2 错误代码大全

    1 前言 作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题.例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?咳 ...

  3. android基础---->Toast的使用

    简要说明 Toast是一种没有交点,显示时间有限,不能与用户进行交互,用于显示提示信息的显示机制,我们可以把它叫做提示框.Toast不依赖 于Activity,也就是说,没有Activity,依然可以 ...

  4. leetcode309 买卖股票

    一.穷举框架 首先,还是一样的思路:如何穷举?这里的穷举思路和上篇文章递归的思想不太一样. 递归其实是符合我们思考的逻辑的,一步步推进,遇到无法解决的就丢给递归,一不小心就做出来了,可读性还很好.缺点 ...

  5. 【剑指offer】面试题 22. 链表中倒数第 K 个节点

    面试题 22. 链表中倒数第 K 个节点

  6. Centos7下nginx的安装与配置

    说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下 ...

  7. 魔术方法之__call、__callStatic

    1.__call() 作用,当调用不存在的方法时,会调用该方法.实际应用,当程序调用不存在的方法时,意外导致程序终止. .或者当你调用了受保护的或者是私人的方法时,也会自动调用__call方法 结果: ...

  8. 用Python实现扑克牌面试题思路

    据说是腾讯的面试题,以下是要求: 一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌.根据桌上的牌堆顺序,输出原先手中牌堆的顺序数组. 实现思路: 1.首先定义一个2维数组, ...

  9. Python3定时器任务代码

    使用threading写的一个定时器任务demo: import time import sys import signal import datetime import threading #定时器 ...

  10. 【IDEA使用技巧】(4) —— IDEA 构建Java Maven项目、导入Eclipse项目、多Module Maven项目

    1.IntelliJ IDEA构建Java Maven项目 1.1. IDEA构建Java Maven项目 ①选择Create New Project,选择创建Maven项目,并勾选Create fr ...