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多重继承实例
Oct 11 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
python查看zip包中文件及大小的方法
Jul 09 Python
python黑魔法之编码转换
Jan 25 Python
Python每天必学之bytes字节
Jan 28 Python
Python常用库推荐
Dec 04 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
python查看列的唯一值方法
Jul 17 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
python模块常用用法实例详解
Oct 17 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
提取HTML标签
2006/10/09 PHP
php 动态添加记录
2009/03/10 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php下保存远程图片到本地的办法
2010/08/08 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
JS实现静止元素自动移动示例
2014/04/14 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
python中时间模块的基本使用教程
2019/05/14 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
班班通项目实施方案
2014/02/25 职场文书
党员公开承诺书
2014/03/25 职场文书
就业协议书怎么填
2014/04/11 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
中学生检讨书范文
2014/11/03 职场文书
小学班级管理心得体会
2016/01/07 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
导游词之上海豫园
2019/10/24 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python