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 相关文章推荐
在win和Linux系统中python命令行运行的不同
Jul 03 Python
python实现ID3决策树算法
Dec 20 Python
Python人脸识别初探
Dec 21 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
Numpy数组的广播机制的实现
Nov 03 Python
python批量提取图片信息并保存的实现
Feb 05 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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中动态显示签名和ip原理
2007/03/28 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
使用正则替换变量
2007/05/05 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
浅谈Postman解决token传参的问题
2018/03/31 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
微信小程序实现天气预报功能
2018/07/18 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
python脚本替换指定行实现步骤
2017/07/11 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python tkinter label 更新方法
2018/10/11 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
品质主管的岗位职责
2013/12/04 职场文书
早会主持词
2014/03/17 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
2016新年年会主持词
2015/07/06 职场文书
致运动员的广播稿
2015/08/19 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python