FLASK 数据库与ORM

数据库与ORM

本文章是通过学习《网易云python全栈工程师》课程的笔记

  1. 关系型数据库:以文件方式永久存储到磁盘。
  2. 非关系型数据库:存储在内存,访问速度很快,通常用来做队列,缓存之类的服务。

sqlit是一个轻量的文本数据库,python自带,无需安装,也无需启动服务器
所有的关系型数据库都使用SQL语言对数据库进行CURD 操作**(创建,更新,读取,删除)**
ORM 对象与关系型数据库映射关系
SQLAlchemy是一款ORM具体实现的库
在flask中,可以使用flask_sqlalchemy插件
插件安装:pip install flask_sqlalchemy

from flask_sqlalchemy import SQLAlchemy
app = Flask(name)
#配置数据库
app.config[‘SQLALCHEMY_DATABASE_URL’]=“sqlite:///cms.db”
db = SQLAlchemy(app)

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
#新增配置,否则数据库会报警告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
#配置数据库


app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///my.db"

db = SQLAlchemy(app)

为了方便观察创建数据表的过程,可以安装SQLite管理模块
安装:pip install sqlite_web
这是一款通过web界面的方式管理数据库
安装后,使用:sqlite_web SQLite数据库文件路径,即可管理数据库

创建数据模型
自定义继承db.Model

class User(db.Model):
id = db.Column(db.Integer,primary_key=True)
username = db.Column(db.String)
password = db.Column(db.String)
realname = db.Column(db.String)
sex= db.Column(db.Integer)
mylike = db.Column(db.String)
city = db.Column(db.String)
intro = db.Column(db.String)

切记:Model首字母要大写
进入flask shell环境创建数据表

>>> from app import db
>>> db.create_all()

sqlite web查看数据库界面

sqlite_web my.db

保存数据
1、实例化模型对象

2、提交到数据库(db.session.add(user),db.session.commot())

切记mylike使用列表输出时getlist(),使用()而不是【】

if request.method == "POST":
realname = request.form['name']
username = request.form['username']
password = request.form['password']
sex = request.form['sex']
mylike = '|'.join(request.form.getlist('like'))
city = request.form['city']
intro = request.form['intro']
user = User(realname=realname,
username=username,
password=password,
sex=sex,
city=city,
intro=intro
)
db.session.add(user)
db.session.commit()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值