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 Web框架Flask信号机制(signals)介绍
Jan 01 Python
详细讲解用Python发送SMTP邮件的教程
Apr 29 Python
python结合opencv实现人脸检测与跟踪
Jun 08 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
Python3学习urllib的使用方法示例
Nov 29 Python
numpy数组拼接简单示例
Dec 15 Python
python list元素为tuple时的排序方法
Apr 18 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
python gdal安装与简单使用
Aug 01 Python
python打造爬虫代理池过程解析
Aug 15 Python
pytorch 中autograd.grad()函数的用法说明
May 12 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 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
中国收音机工业发展史
2021/03/02 无线电
对javascript和select部件的结合运用
2006/10/09 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
潜说js对象和数组
2011/05/25 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
vue中appear的用法
2017/08/17 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
python3中set(集合)的语法总结分享
2017/03/24 Python
Python变量和字符串详解
2017/04/29 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
css3 文字断裂效果
2022/04/22 HTML / CSS