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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python将xml和xsl转换为html的方法
Mar 10 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
python socket网络编程之粘包问题详解
Apr 28 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
Django实现基于类的分页功能
Oct 31 Python
使用python求解二次规划的问题
Feb 29 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
Python网页解析器使用实例详解
May 30 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 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程序员编程注意事项
2008/04/10 PHP
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
微信红包随机生成算法php版
2016/07/21 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
简单的通用表达式求10乘阶示例
2014/03/03 Python
python批量提交沙箱问题实例
2014/10/08 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
python读文件的步骤
2019/10/08 Python
python字符串判断密码强弱
2020/03/18 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
董事长职责范文
2013/11/08 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
ant design charts 获取后端接口数据展示
2022/05/25 Javascript