python(三十)——从数据库查询应用、MongoDB数据库

162 阅读2分钟

从数据库查询数据到tkinter表格中

import pymysql,tkinter
from tkinter import ttk

def serMySql():
    db = pymysql.connect('localhost', 'root', 'passwd', 'class')
    cursor = db.cursor()
    name = 'student'
    sql = 'select * from '+name
    try:
        cursor.execute(sql)
        reslist = cursor.fetchall()
        # for row in reslist:
        #     print('%d--%s--%s--%s' % (row[0], row[1], row[3],row[4]))
        return reslist
    except:
        print('失败')
        # 如果提交失败,回到上一次的数据
        db.rollback()
    cursor.close()
    db.close()



# 创建主窗口
win = tkinter.Tk()
win.title("数据表查询界面")
#设置大小和位置
win.geometry("420x300+200+0")
# 表格,show='headings'不让最左边的行出现
tree = ttk.Treeview(win,show='headings')
tree.pack()
# 定义列
tree["columns"] = ("序号", "姓名", "年龄", "籍贯")
# 设置列,现在列还不显示,列宽度为100   anchor='center'文字居中
tree.column("序号", width=100,anchor='center')
tree.column("姓名", width=100,anchor='center')
tree.column("年龄", width=100,anchor='center')
tree.column("籍贯", width=120,anchor='center')

# 设置表头
tree.heading("序号", text="序号-id")
tree.heading("姓名", text="姓名-name")
tree.heading("年龄", text="年龄-age")
tree.heading("籍贯", text="籍贯-native place")

# 向表格添加数据方法
def search():
    a = serMySql()
    for index, row in enumerate(a):
        tree.insert("", index, values=(row[0], row[1], row[3], row[4]))

button = tkinter.Button(win,text="查询",command=search)
button.pack()

win.mainloop()

运行结果:

 

MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB将数据存储成一个文档,数据结构由键值对组成

MongoDB的提供了一个面向文档存储,基本的思路就是将原来“行”的概念换成更加灵活的“文档”模型。一条记录可以表示非常复杂的层次关系,Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

非常容易扩展。面对数据量的不断上涨,通常有两种方案,一种是购买更好的硬件,另一种是分散数据,进行分布式的扩展,前者有着非常大的缺点,因为硬件通常是有物理极限的,当达到极限以后,处理能力就不可能再进行扩展了。所以建议的方式是使用集群进行扩展。MongoDB所采用的面向文档的数据模型使其可以自动在多台服务器之间分割数据。它还可以平衡集群的数据和负载。自动重排文档。

一起学习,一起进步 -.- ,如有错误,可以发评论