flask框架实现连接sqlite3数据库的方法分析


Posted in Python onJuly 16, 2018

本文实例讲述了flask框架实现连接sqlite3数据库的方法。分享给大家供大家参考,具体如下:

1. 在flask文件夹中新建一个models.py文件用来定义模型,内部代码如下

import sqlite3 #导入sqlite3包
def get_conn():
 #定义该函数用来连接数据库
 return sqlite3.connect("test.db")
class User(object):
 def __init__(self,id,name):
  self.id = id
  self.name = name
 def save(self):
  sql = "insert into user VALUES (?,?)"#sql语句
  conn = get_conn()#连接数据库
  cursor = conn.cursor()#定义一个游标
  cursor.execute(sql,(self.id,self.name))#执行sql语句
  conn.commit()#提交数据库改动
  cursor.close()#关闭游标
  conn.close()#关闭数据库连接
 '''
 staticmethod相当于一个定义在类里面的函数,所以如果一个方法既不跟实例
 相关也不跟特定的类相关,推荐将其定义为一个staticmethod,这样不仅使代
 码一目了然,而且似的利于维护代码。
 '''
 @staticmethod
 def query():
  sql = "select * from user"
  conn = get_conn()
  cursor = conn.cursor()
  rows = cursor.execute(sql)
  users = []
  for row in rows:
   user = User(row[0],row[1])
   users.append(user)
  conn.commit()
  cursor.close()
  conn.close()
  return users
 def __str__(self):
  return 'id:{}--name:{}'.format(self.id,self.name)#注此处的是点不是逗号

2. 在flask文件夹中新建一个manage.py文件

(1)导入flask_script包,导入sqlite3包,导入models.py中定义的模型,导入flask中的应用,所以最终头部代码如下

from flask_script import Manager
from learn_flask_script import app
import sqlite3
from models import User

(2)创建数据库,代码如下

@manager.command
def init_db():
 sql = "create table user (id INT,name TEXT)"
 conn = sqlite3.connect("test.db")
 cursor = conn.cursor()
 cursor.execute(sql)
 conn.commit()
 cursor.close()
 conn.close()

(3)保存数据,代码如下

@manager.command
def save():
 user = User(1,'csdn')
 user.save()

(4)查询数据,代码如下

@manager.command
def query_all():
 users = User.query()
 for user in users:
  print(user)

整体代码如下

from flask_script import Manager
from learn_flask_script import app
import sqlite3
from models import User
manager = Manager(app)
@manager.command
def init_db():
 sql = "create table user (id INT,name TEXT)"
 conn = sqlite3.connect("test.db")
 cursor = conn.cursor()
 cursor.execute(sql)
 conn.commit()
 cursor.close()
 conn.close()
@manager.command
def save():
 user = User(1,'zhangjia')
 user.save()
@manager.command
def query_all():
 users = User.query()
 for user in users:
  print(user)
if __name__ == "__main__":
 manager.run()

3. 在终端中使用命令即可运行数据库的创建,添加以及查询

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
Python中django学习心得
Dec 06 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
Python实现拼音转换
Jun 07 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 #Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 #Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 #Python
Sanic框架请求与响应实例分析
Jul 16 #Python
解决Python 中英文混输格式对齐的问题
Jul 16 #Python
Django实战之用户认证(用户登录与注销)
Jul 16 #Python
Python3数据库操作包pymysql的操作方法
Jul 16 #Python
You might like
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
Python subprocess库的使用详解
2018/10/26 Python
python读取指定字节长度的文本方法
2019/08/27 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
python实现ip地址的包含关系判断
2020/02/07 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
网上书店创业计划书
2014/01/12 职场文书
英文留学推荐信范文
2014/01/25 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
警察群众路线整改措施
2014/09/26 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
党员转正大会主持词
2015/07/02 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
pytorch--之halfTensor的使用详解
2021/05/24 Python