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爬虫实战之爬取京东商城实例教程
Apr 24 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
python获取中文字符串长度的方法
Nov 14 Python
python时间序列按频率生成日期的方法
May 14 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
快速查找Python安装路径方法
Feb 06 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
Python bytes string相互转换过程解析
Mar 05 Python
Django之腾讯云短信的实现
Jun 12 Python
python实现画图工具
Aug 27 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
python实现在字符串中查找子字符串的方法
2015/07/11 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
python使用zip将list转为json的方法
2018/12/31 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
大学生求职自我评价
2014/01/16 职场文书
综合实践教学反思
2014/01/31 职场文书
面试后的英文感谢信
2014/02/01 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
Python读写yaml文件
2022/03/20 Python