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发送邮件接收邮件示例分享
Jan 21 Python
python数据结构之链表的实例讲解
Jul 25 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
用python打印菱形的实操方法和代码
Jun 25 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
python对execl 处理操作代码
Jun 22 Python
Python Tornado核心及相关原理详解
Jun 24 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
Python打包exe时各种异常处理方案总结
May 18 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 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中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP实现简易计算器功能
2020/08/28 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
Python 必须了解的5种高级特征
2020/09/10 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
幼儿教师研修感言
2014/02/12 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
工作总结与自我评价
2014/09/18 职场文书
诚信承诺书
2015/01/19 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL