python3 + flask + sqlalchemy +orm(2):数据库中添加表
往数据库中添加一张保存文章的表,表明为article,字段有id,title,content
同样一个配置文件:config.py
DEBUG = True
#dialect+driver://root:1q2w3e4r5t@127.0.0.1:3306/
DIALECT = 'mysql'
DRIVER='pymysql'
USERNAME = 'root'
PASSWORD = '1q2w3e4r5t'
HOST = '127.0.0.1'
PORT = 3306
DATABASE = 'db_demo1' SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
print(SQLALCHEMY_DATABASE_URI)
flask app 中新建一个class Blog,里面定义好id ,title ,content。代码执行到db.create_all()时,会自动在数据库中创建一个表,表明为blog
from flask import Flask
import config from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext.declarative import declarative_base app = Flask(__name__)
app.config.from_object(config) db = SQLAlchemy(app)
Base = declarative_base() class Blog(db.Model):
__tablename__ = 'blog'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text,nullable=True) db.create_all() @app.route('/')
def index():
return 'index' if __name__ == '__main__':
app.run(debug=True)
启动flask app,数据库中查询表和表结构如下,有新增相应的表,说明新建表成功

数据库表中的数据增删改查
#新增
blog = Blog(title="first blog",content="this is my first blog")
db.session.add(blog)
db.session.commit() #查询
#res =Blog.query.filter(Blog.title=="first blog")[0] res =Blog.query.filter(Blog.title=="first blog").first()
print(res.title)
#修改
blog_edit = Blog.query.filter(Blog.title=="first blog").first()
blog_edit.title = "new first blog"
db.session.commit()
#删除
blog_delete = Blog.query.filter(Blog.title=="first blog").first()
db.session.delete(blog_delete)
db.session.commit()
完整代码
from flask import Flask
import config from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext.declarative import declarative_base app = Flask(__name__)
app.config.from_object(config) db = SQLAlchemy(app)
Base = declarative_base() class Blog(db.Model):
__tablename__ = 'blog'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text,nullable=True) db.create_all() @app.route('/')
def index():
#新增
blog = Blog(title="first blog",content="this is my first blog")
db.session.add(blog)
db.session.commit() #查询
#res =Blog.query.filter(Blog.title=="first blog")[0] res =Blog.query.filter(Blog.title=="first blog").first()
print(res.title)
#修改
blog_edit = Blog.query.filter(Blog.title=="first blog").first()
blog_edit.title = "new first blog"
db.session.commit()
#删除
blog_delete = Blog.query.filter(Blog.title=="first blog").first()
db.session.delete(blog_delete)
db.session.commit() return 'index' if __name__ == '__main__':
app.run(debug=True)
欢迎扫描二维码关注技术公众号:为测,上面有自动化测试方面技术文章

python3 + flask + sqlalchemy +orm(2):数据库中添加表的更多相关文章
- python3 + flask + sqlalchemy +orm(1):链接mysql 数据库
1.pycharm中新建一个flask项目 2.按装flask.PyMySQL.flask-sqlalchemy 3.项目下面新建一个config.py 文件 DEBUG = True #dialec ...
- python3 + flask + sqlalchemy +orm(3):多对多关系
一篇文章有多个tag,一个tag也可以属于多篇文章,文章和tag存在多对多关系 config.py DEBUG = True #dialect+driver://root:1q2w3e4r5t@127 ...
- Python3:sqlalchemy对sybase数据库操作,非sql语句
Python3:sqlalchemy对sybase数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- c ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- Eclipse中java向数据库中添加数据,更新数据,删除数据
前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) package com.ning ...
- 用PHP向数据库中添加数据
显示页面(用户可见) <body><form action="chuli.php" method="post"> //将该页面接收的数 ...
- 用SQL语句创建和删除Access数据库中的表;添加列和删除列
用SQL语句创建和删除Access数据库中的表;添加列和删除列 Posted on 2009-08-11 13:42 yunbo 阅读(1240) 评论(0) 编辑 收藏 用SQL语句创建和删除Acc ...
- 向数据库中添加数据,通过se16 不能添加,通过 代码可以添加的原因
1: 在向数据库中添加数据时,通过客户端se16 准备对 数据表进行添加数据,提示如下: 找了以下原因,如下: https://www.baidu.com/link?url=3yRtAfY1_9XG ...
- phpStudy3——往数据库中添加数据
前言: 前边介绍了查询数据库的方法,这里介绍下往数据库中添加数据的方法. 项目需求: 用户在前端页面输入的用户名和手机号码,点击提交后后端判断手机号码是否已经存在.如果不存在,那么插入数据库到数据库, ...
随机推荐
- poj 3685 Matrix 【二分】
<题目链接> 题目大意: 给你一个n*n的矩阵,这个矩阵中的每个点的数值由 i2 + 100000 × i + j2 - 100000 × j + i × j 这个公式计算得到,N( ...
- c/c++关于指针的一点理解
#include <iostream> #include <string> using namespace std; int main() { }, n{}; cout < ...
- 笔记-JS高级程序设计-BOM篇
BOM提供了很多对象,用于访问浏览器的功能.这些功能与任何网页无关. 1BOM的核心对象是window,它代表浏览器的一个实例,它是通过JS访问浏览器窗口的一个借口,同时又是ECMAScript规定的 ...
- C# MediaHelper
using System.Text; public class MediaHelper { private static MediaHelper media = null; private Media ...
- SpringBoot整合Mybatis完整详细版
记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + ...
- Python2.*与Python3.*共存问题
安装Python 2.7后,本来在3.4下能正常使用的脚本无法运行.网上有的方法是把两个版本的主程序分别改名为python2和python3,人眼判断脚本,手输命令行执行脚本.像我这样喜欢双击.拖拽的 ...
- MySql主键不区分大小写问题、查询不区分大小写问题
一.问题一:MySql默认主键不区分大小写 实例: -- 创建混合类型 create table PlainText( Content nvarchar(50) , primary key(Conte ...
- [CSAcademy]Virus on a Tree
[CSAcademy]Virus on a Tree 题目大意: 给你一棵\(n(n\le10^5)\)个点的树,一开始点\(1\)有病毒,可以沿着边扩散.你可以事先切掉若干条边,使得病毒扩散不超过\ ...
- GMA Round 1 相交
传送门 相交 在实数范围内,设抛物线$C_1:y^2=2x$,双曲线:$C_2:\frac{y^2}{b^2}-\frac{x^2}{a^2}=1$(a,b为参数). 假如a和b都在(0,16)这个区 ...
- Linux修改网卡名称的方法
假设我们要修改网卡名为mybridge 实现步骤如下 1.# vim /etc/modprobe.conf 找到alias eth0 vmxnet 将eth0改为你想要的网卡名称 例: alias m ...