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实现的去除win下文本文件头部BOM的代码
Feb 10 Python
分析Python的Django框架的运行方式及处理流程
Apr 08 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python实现字典的key和values的交换
Aug 04 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
OpenCV 边缘检测
Jul 10 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Tensorflow中的dropout的使用方法
Mar 13 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 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 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
Python是编译运行的验证方法
2015/01/30 Python
Django rest framework实现分页的示例
2018/05/24 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
django中ImageField的使用详解
2020/12/21 Python
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
采购主管工作职责
2013/12/12 职场文书
党校培训思想汇报
2014/01/03 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
新员工试用期自我评价
2015/03/10 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
安全生产协议书
2016/03/22 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python