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基于smtplib实现异步发送邮件服务
May 28 Python
在Python的Django框架下使用django-tagging的教程
May 30 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
使用Python爬取最好大学网大学排名
Feb 24 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
python绘制封闭多边形教程
Feb 18 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
如何利用python和DOS获取wifi密码
Mar 31 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
关于IIS php调用com组件的权限问题
2012/01/11 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
php中session使用示例
2014/03/29 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
常用PHP封装分页工具类
2017/01/14 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
网页自动跳转代码收集
2009/09/27 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
vue移动端实现下拉刷新
2018/04/22 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
序列化Python对象的方法
2020/08/01 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
门诊手术室工作制度
2014/01/30 职场文书
党员批评与自我批评
2014/02/12 职场文书
校长师德表现自我评价
2015/03/04 职场文书
人生遥控器观后感
2015/06/11 职场文书
三八节祝酒词
2015/08/11 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书