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 20 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
python机器人运动范围问题的解答
Apr 29 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
python实现大文本文件分割
Jul 22 Python
Python实现打印实心和空心菱形
Nov 23 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
python如何实时获取tcpdump输出
Sep 16 Python
python statsmodel的使用
Dec 21 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
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
python奇偶行分开存储实现代码
2018/03/19 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
通过shell+python实现企业微信预警
2019/03/07 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python如何计算语句执行时间
2019/11/22 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
自荐信格式范文
2013/10/07 职场文书
职工小家建设活动方案
2014/08/25 职场文书
教师三严三实心得体会
2014/10/11 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
培训后的感想
2015/08/07 职场文书
python Polars库的使用简介
2021/04/21 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS