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数据结构之图的实现方法
Jul 08 Python
Python Sql数据库增删改查操作简单封装
Apr 18 Python
python实现下载整个ftp目录的方法
Jan 17 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
python实现杨氏矩阵查找
Mar 02 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
怎样在php中使用PDF文档功能
2006/10/09 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
PHP反射学习入门示例
2019/06/14 PHP
js实现字符串的16进制编码不加密
2014/04/25 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
初学python数组的处理代码
2011/01/04 Python
python实现人人网登录示例分享
2014/01/19 Python
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python探索之创建二叉树
2017/10/25 Python
Python Socket使用实例
2017/12/18 Python
python实现Floyd算法
2018/01/03 Python
python中类的属性和方法介绍
2018/11/27 Python
Python OS模块实例详解
2019/04/15 Python
Python装饰器用法与知识点小结
2020/03/09 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
营业员演讲稿
2013/12/30 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书