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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
跟老齐学Python之有容乃大的list(4)
Sep 28 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
Python getattr()函数使用方法代码实例
Aug 10 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
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
js实现简单模态框实例
2018/11/16 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
django ajax json的实例代码
2018/05/29 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
详解python中sort排序使用
2019/03/23 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
博士学位自我鉴定范文
2013/12/26 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
文明礼仪倡议书
2015/04/28 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js