使用python tkinter 制作简单信息录入处理


声明:本文转载自https://my.oschina.net/zhiyonghe/blog/1789371,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

主要有以下几个文件,简单说明一下

1.db.py 处理sql 逻辑

2.login.py 作登录使用(现在还没有实现连接数据库,只是为了功能实现)

3.stjy.py 主体窗口

4.数据文件(sqlite3)

#db.py 主要代码,第一次执行时,把 “# create_table()”中的#去掉,执行完后,在加上 import sqlite3  def create_table():     conn = sqlite3.connect('test.db')     cur=conn.cursor()     # cur=conn.cursor()     try:         create_tb_cmd='''          CREATE TABLE IF NOT EXISTS student_info           (id INTEGER PRIMARY KEY AUTOINCREMENT,             name          text,             phone         text,            qq            text,            weixin        text,            prid_school   text,            cslt_course   text,            cslt_from     text,            dt            text,            provider      text,            note          text           )         '''         #create table         # cur.execute(create_tb_cmd)         cur.execute(create_tb_cmd)          print('create table sucess')      except Exception as e:           print ("Create table failed" )         print(e)         pass         # return False     conn.commit()     cur.close()     conn.close()  def drop_table():       conn = sqlite3.connect('test.db')     cur=conn.cursor()     try:         drop_cmd='''drop table student_info'''         #create table         cur.execute(create_tb_cmd)       except:           print ("drop table failed" )         pass         # return False     conn.commit()     cur.close()     conn.close()      def select_data():     conn = sqlite3.connect('test.db')     cur=conn.cursor()     select_cmd=''' select * from student_info order by id desc'''       cur.execute(select_cmd)     res = cur.fetchall()     conn.commit()     cur.close()     conn.close()     return res  def edit_data(id):     name_para={'id':id}     conn = sqlite3.connect('test.db')     cur=conn.cursor()     select_cmd=''' select * from student_info where id=:id'''       cur.execute(select_cmd,name_para)     res = cur.fetchall()     conn.commit()     cur.close()     conn.close()     return res  def insert_data(name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note):     name_para={'name':name,'phone':phone,'qq':qq,'weixin':weixin,'prid_school':prid_school,\      'cslt_course':cslt_course,'cslt_from':cslt_from,'dt':dt,'provider':provider,'note':note}     conn = sqlite3.connect('test.db')     cur=conn.cursor()     insert_dt_cmd='''        INSERT INTO student_info (name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note)       VALUES (:name,:phone,:qq,:weixin,:prid_school,:cslt_course,:cslt_from,:dt,:provider,:note)     '''     print(insert_dt_cmd)           cur.execute(insert_dt_cmd,name_para)       conn.commit()     cur.close()       conn.close()   def delete_data(sdt_id,name):     name_para={'sdt_id':sdt_id,'name':name}     conn = sqlite3.connect('test.db')     cur=conn.cursor()     # cur=conn.cursor()     del_cmd=''' delete from student_info where id=:sdt_id and name=:name  '''       cur.execute(del_cmd,name_para)     conn.commit()     cur.close()     conn.close()   def update_data(std_id,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note):     name_para={'name':name,'phone':phone,'qq':qq,'weixin':weixin,'prid_school':prid_school,                 'cslt_course':cslt_course,'cslt_from':cslt_from,'dt':dt,'provider':provider,                 'note':note,'std_id':std_id              }     print(name_para)              conn = sqlite3.connect('test.db')     cur=conn.cursor()     update_cmd=''' update student_info set name=:name,phone=:phone,qq=:qq,                  weixin=:weixin,prid_school=:prid_school,                cslt_course=:cslt_course,cslt_from=:cslt_from,dt=:dt,                provider=:provider,note=:note where id=:std_id '''       print(update_cmd)     cur.execute(update_cmd,name_para)     conn.commit()     cur.close()     conn.close()  # drop_table() # create_table() # name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note  # insert_data('jonsen3','15920056968','794554422','weixin','shenzhen_school','english','shanghai','2018-03-30','tom','note') # rs=select_data()  # std = [] # for idt,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note in rs: #     # print(idt,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note) #     std.append((idt,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note)) # # print(std) # for i in range(len(rs)): #     print(std[i][0],std[i][1],std[i][2],std[i][3],std[i][4],std[i][5],std[i][6],std[i][7],std[i][8],std[i][9],std[i][10])     # pritn(dt) # print(rs)
#login.py  from tkinter import *       class Reg (Frame):       def __init__(self,master):           frame = Frame(master)           frame.pack()           self.lab1 = Label(frame,text = "账户:")           self.lab1.grid(row = 0,column = 0,sticky = W)           self.ent1 = Entry(frame)           self.ent1.grid(row = 0,column = 1,sticky = W)           self.lab2 = Label(frame,text = "密码:")           self.lab2.grid(row = 1,column = 0)           self.ent2 = Entry(frame,show = "*")           self.ent2.grid(row = 1,column = 1,sticky = W)           self.button = Button(frame,text = "登录",command = self.Submit)           self.button.grid(row = 2,column = 1,sticky = W)           self.lab3 = Label(frame,text = "")           self.lab3.grid(row = 3,column = 1,sticky = W)           self.button2 = Button(frame,text = "退出",command = frame.quit)           self.button2.grid(row = 2,column = 1,sticky = E)       def Submit(self):           s1 = self.ent1.get()           s2 = self.ent2.get()          if s1 == 'admin' and s2 == '123':               self.lab3["text"] = "登陆成功"             root.destroy()             import  stjy as mf          elif((s1.strip()=="" and s2.strip()==""))or ((s1.strip()=="" and s2.strip()=="")):             self.lab3["text"] ="用户名或密码不能为空"                           else:               self.lab3["text"] = "用户名或密码错误!"           self.ent1.delete(0,len(s1))           self.ent2.delete(0,len(s2))            root = Tk()   root.title("用户登录")   app = Reg(root)   root.mainloop()  
#stjy.py # import tkinter as tkt from tkinter import  * from tkinter import Tk, Scrollbar, Frame,ttk import tkinter from tkinter.ttk import Treeview import time import db as sql from tkinter import messagebox   MENU_ITEMS = [ '常用', '帮助'] MENU_CY_ITEMS = ['查看','录入','编辑','导出数据','exit'] MENU_HELP_ITEMS=['about','help']  def select_action():      frame=Frame(root)     frame.place(x=0, y=10)     # frame.grid(row=0,column=0)     #滚动条      scrollBar = tkinter.Scrollbar(frame)     scrollBar.pack(side=tkinter.RIGHT, fill=tkinter.Y)     # scrollBar.grid(row=0,column=1)     scrollBar_sp=tkinter.Scrollbar(frame,orient='horizontal')     # scrollBar_sp.pack(side=tkinter.RIGHT,fill=tkinter.X)     #Treeview组件,11列,显示表头,带垂直滚动条     tree = Treeview(frame,height=500,                           columns=('c1', 'c2', 'c3', 'c4', 'c5', 'c6','c7','c8','c9','c10','c11'),                           show="headings",                           yscrollcommand=scrollBar.set,                                                    #   xscrollcommand=scrollBar_sp.set     )                                #设置每列宽度和对齐方式     tree.column('c1', width=20, anchor='center')      tree.column('c2', width=100, anchor='center')     tree.column('c3', width=100, anchor='center')     tree.column('c4', width=120, anchor='center')     tree.column('c5', width=100, anchor='center')     tree.column('c6', width=100, anchor='center')      tree.column('c7', width=100, anchor='center')      tree.column('c8', width=100, anchor='center')      tree.column('c9', width=100, anchor='center')      tree.column('c10', width=100, anchor='center')     tree.column('c11', width=100, anchor='center')        #设置每列表头标题文本     tree.heading('c1',text='序号')     tree.heading('c2', text='姓名')     tree.heading('c3', text='手机号')     tree.heading('c4', text='QQ')     tree.heading('c5', text='微信')     tree.heading('c6', text='提供分校')     tree.heading('c7', text='咨询科目')     tree.heading('c8',text='咨询来自')     tree.heading('c9',text='提供日期')     tree.heading('c10',text='提供人')     tree.heading('c11',text='备注')     tree.pack(side=tkinter.LEFT, fill=tkinter.Y)     def treeviewClick(event):         #获取行的索引值         iid=tree.identify_row(event.y)         xy=tree.identify_element(event.x,event.y)         s=tree.selection()         # print(iid,xy )         print(s)         pass     tree.bind('<Button-1>', treeviewClick)     #插入数据     res=sql.select_data()     #for i in range(len(PrinterPywin32.get_enumjobs())):     #     self.tree.insert("", "end", values=(i + 1, PrinterPywin32.get_enumjobs()[i]["Submitted"],     # PrinterPywin32.get_enumjobs()[i]["pPrinterName"],     # PrinterPywin32.get_enumjobs()[i]["JobId"],     # PrinterPywin32.get_enumjobs()[i]["Status"]))     # for i in range(len(res)):         # tree.insert('', i, values=[str(i)]*11)     std=[]     for idt,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note in res:         std.append((idt,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note))     for i in range(len(res)):         tree.insert("",i,values=(std[i][0],std[i][1],std[i][2],std[i][3],std[i][4],std[i][5],std[i][6],std[i][7],std[i][8],std[i][9],std[i][10]))              def insert_action():     def save_student():         #name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note)         user_name=ent_name.get()         phone=ent_phone.get()         qq=ent_qq.get()         weixin=ent_weixin.get()         cbl_fx.bind("<<ComboboxSelected>>")         fenxiao=cbl_fx.get()         cbl_km.bind("<<ComboboxSelected>>")         kemu=cbl_km.get()         comboxlist.bind("<<ComboboxSelected>>")         laizi=comboxlist.get()         riqi=ent_dt.get()         provider=ent_pr.get()         beizhu=tx.get()         try:             sql.insert_data(user_name,phone,qq,weixin,fenxiao,kemu,laizi,riqi,provider,beizhu)             messagebox.showinfo("info","保存成功")         except:             print("写入数据失败")          def cancel_student():         pass         ins_dat=Tk()     # ins_dat.geometry(400*400)     # ins_dat.geometry('400*400')      # ins_dat=Frame(ins_dat)     # ins_dat.place(x=0, y=10)     ins_dat.title('数据录入')      #(ins_dat, '数据录入')     # ins_dat.pack()     #'姓名','手机号','QQ','微信', '提供分校', '咨询科目','咨询来自','提供日期', '提供人', '备注'     lab_name   =Label(ins_dat,text='姓名:')     lab_phone  =Label(ins_dat,text='手机号:')     lab_qq     =Label(ins_dat,text='QQ:')     lab_wexin  =Label(ins_dat,text='微信:')     lab_fx     =Label(ins_dat,text='提供分校:')     lab_km     =Label(ins_dat,text='咨询科目:')     lab_lz     =Label(ins_dat,text='咨询来自:')     lab_dt     =Label(ins_dat,text='提供日期:')     lab_pr     =Label(ins_dat,text='提供人:')     lab_nt     =Label(ins_dat,text='备注:')          ent_name = Entry(ins_dat)     ent_phone=Entry(ins_dat)     ent_qq=Entry(ins_dat)       ent_weixin=Entry(ins_dat)     # ent_fx=Entry(ins_dat)       # ent_km=Entry(ins_dat)     # ent_lz=Entry(ins_dat)     comval_fx=tkinter.StringVar()     cbl_fx=ttk.Combobox(ins_dat,textvariable=comval_fx) #初ymf始化     cbl_fx["values"]=("西乡校区","布吉校区","车公庙校区","白石洲校区")     cbl_fx.current(0)       com_val = tkinter.StringVar()     cbl_km=ttk.Combobox(ins_dat,textvariable=com_val) #初始化     cbl_km["values"]=("提升学历","代办入户","会计考证","网络考试")     cbl_km.current(0)      comvalue = tkinter.StringVar()     comboxlist=ttk.Combobox(ins_dat,textvariable=comvalue) #初始化     comboxlist["values"]=("官网后台","在线调查后台","移动官网后台","地铁广告","百度金融"\           ,"EC离线留言","离线宝","微信客服","PC网站-百度推广")     comboxlist.current(0)  #选择第一个        # now = time.strftime("%H:%M:%S")     # now_val=StringVar()     # now_val.set(now)      ent_dt=Entry(ins_dat)       ent_pr=Entry(ins_dat)       # ent_nt=Entry(ins_dat)     tx=Entry(ins_dat)     # tx=tkinter.Text(ins_dat,height=5)     btn = Button(ins_dat,text = '保存',command = save_student)     btn2 = Button(ins_dat,text = '取消',command = cancel_student)         lab_name.grid(row = 0,column = 0,sticky =W)         lab_phone.grid(row = 1,column = 0,sticky = W)     lab_qq.grid(row = 2,column = 0,sticky = W)     lab_wexin.grid(row = 3,column = 0,sticky = W)     lab_fx.grid(row = 4,column = 0,sticky = W)     lab_km.grid(row = 5,column = 0,sticky = W)     lab_lz.grid(row = 6,column = 0,sticky = W)     lab_dt.grid(row = 7,column = 0,sticky = W)     lab_pr.grid(row = 8,column = 0,sticky = W)     lab_nt.grid(row = 9,column = 0,sticky = W)         ent_name.grid(row = 0,column = 1,sticky = W)     ent_phone.grid(row = 1,column = 1,sticky = W)     ent_qq.grid(row = 2,column =1 ,sticky = W)     ent_weixin.grid(row =3 ,column = 1,sticky = W)     # ent_fx.grid(row =4 ,column = 1,sticky = W)     cbl_fx.grid(row=4,column=1,sticky=W)     # ent_km.grid(row =5 ,column = 1,sticky = W)     cbl_km.grid(row =5 ,column = 1,sticky = W)     # ent_lz.grid(row =6 ,column = 1,sticky = W)     comboxlist.grid(row=6,column=1,sticky=W)     ent_dt.grid(row =7 ,column = 1,sticky = W)       ent_pr.grid(row =8 ,column = 1,sticky = W)      # ent_nt.grid(row =9 ,column = 1,sticky = W)      tx.grid(row =9 ,column = 1,sticky = W)      btn.grid(row =10,column = 1,sticky = W)     btn2.grid(row =10,column = 2,sticky = W)         ins_dat.mainloop() def delete_action():     pass def edit_action():     def edit_fd_info():         std_id=ent_id.get()         res=sql.edit_data(std_id)         for idt,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note in res:             ent_name_ed.insert(0,name)             ent_phone_ed.insert(0,phone)             ent_qq_ed.insert(0,qq)             ent_weixin_ed.insert(0,weixin)             ent_fx_ed.insert(0,prid_school)             ent_km_ed.insert(0,cslt_course)             ent_lz_ed.insert(0,cslt_from)             ent_pr_ed.insert(0,provider)             ent_dt_ed.insert(0,dt)             ent_nt_ed.insert(0,note)             # sql.update_data(id,name,phone,qq,weixin,prid_school,cslt_course,cslt_from,dt,provider,note)              print(name,phone,weixin)                         # print(res)     def save_info():         std_id=ent_id.get()         uname=ent_name_ed.get()         uphone=ent_phone_ed.get()         uqq=ent_qq_ed.get()         uweixin=ent_weixin_ed.get()         ufx=ent_fx_ed.get()         ukm=ent_km_ed.get()         ulz=ent_lz_ed.get()         upr=ent_pr_ed.get()         udt=ent_dt_ed.get()         ued=ent_nt_ed.get()                  if(uname and uphone):             try:                 sql.update_data(std_id,uname,uphone,uqq,uweixin,ufx,ukm,ulz,udt,upr,ued)                 messagebox.showinfo("info","保存成功")              except:                 messagebox.showerror("info","保存失败")                 pass          print(uname,udt)     def del_info():         std_id=ent_id.get()         uname=ent_name_ed.get()         if(uname and std_id):             try:                 sql.delete_data(std_id,uname)                 messagebox.showinfo('infor','删除成功')             except Exception as e:                 messagebox.showerror('info',e)                 pass                          edit_dat=Tk()     edit_dat.title("信息维护")     # edit_dat.geometry('','300*400')     lab_id=Label(edit_dat,text='请输入编辑ID:')     ent_id=Entry(edit_dat)      btn_fd=Button(edit_dat,text='查询',command=edit_fd_info)     lab_id.grid(row = 0,column = 0,sticky = W)     ent_id.grid(row = 0,column = 1,sticky = W)     btn_fd.grid(row = 0,column = 2,sticky = W)      # vl_name=StringVar()     lab_name   =Label(edit_dat,text='姓名:')     ent_name_ed=Entry(edit_dat,textvariable=edit_fd_info )     lab_name.grid(row = 2,column = 0,sticky = W)     ent_name_ed.grid(row = 2,column = 1,sticky = W)            # vl_phone=StringVar()     lab_phone  =Label(edit_dat,text='手机号:')     ent_phone_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_phone.grid(row = 3,column = 0,sticky = W)     ent_phone_ed.grid(row = 3,column = 1,sticky = W)      lab_qq_ed     =Label(edit_dat,text='QQ:')     ent_qq_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_qq_ed.grid(row = 4,column = 0,sticky = W)     ent_qq_ed.grid(row = 4,column = 1,sticky = W)      lab_wexin_ed  =Label(edit_dat,text='微信:')     ent_weixin_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_wexin_ed.grid(row = 5,column = 0,sticky = W)     ent_weixin_ed.grid(row = 5,column = 1,sticky = W)      # lab_fx_ed     =Label(edit_dat,text='提供分校:')     # ent_fx_ed=Entry(edit_dat)     # lab_fx_ed.grid(row=11,column=0,sticky=W)     # ent_fx_ed.grid(row=11,column=1,sticky=W)     lab_fx_ed  =Label(edit_dat,text='提供分校:')     ent_fx_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_fx_ed.grid(row = 6,column = 0,sticky = W)     ent_fx_ed.grid(row = 6,column = 1,sticky = W)       lab_km_ed     =Label(edit_dat,text='咨询科目:')     ent_km_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_km_ed.grid(row = 7,column = 0,sticky = W)     ent_km_ed.grid(row = 7,column = 1,sticky = W)      lab_lz_ed     =Label(edit_dat,text='咨询来自:')     ent_lz_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_lz_ed.grid(row = 8,column = 0,sticky = W)     ent_lz_ed.grid(row = 8,column = 1,sticky = W)      lab_dt_ed     =Label(edit_dat,text='提供日期:')     ent_dt_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_dt_ed.grid(row = 9,column = 0,sticky = W)     ent_dt_ed.grid(row = 9,column = 1,sticky = W)          lab_pr_ed     =Label(edit_dat,text='提供人:')     ent_pr_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_pr_ed.grid(row = 10,column= 0,sticky = W)     ent_pr_ed.grid(row = 10,column = 1,sticky = W)       lab_nt_ed     =Label(edit_dat,text='备注:')     ent_nt_ed=Entry(edit_dat,textvariable=edit_fd_info)     lab_nt_ed.grid(row = 12,column = 0,sticky = W)     ent_nt_ed.grid(row = 12,column = 1,sticky = W)     btn_sv=Button(edit_dat,text='保存',command=save_info)     btn_sv.grid(row=13,column=0)      btn_del=Button(edit_dat,text='删除',command=del_info)     btn_del.grid(row=13,column=1,sticky=W)               edit_dat.mainloop()     pass      def export_data():     def exp_dt():         import pandas as pd         # import openpyxl           path=ent_path.get()         # file_name=path+"abc.csv"         rs=pd.DataFrame(res,columns=('id','姓名','手机号','QQ','微信','提供分校','咨询科目',\            '咨询来自','提供日期','提供人','备注'))         rs.to_csv(path,index=True,header=True)         # print(rs)         # print(file_name)         # xlsx_file=pd.ExcelFile(file_name)         # x1=xlsx_file.parse(0)         # pd.DataFrame(res).to_excel("abc.xlsx",sheet_name="123",index=False,header=True)           exp_dat=Tk()     exp_dat.title("导出数据")     lab_path=Label(exp_dat,text='请输入导出路径:')     ent_path=Entry(exp_dat)     btn_exp=Button(exp_dat,text='导出',command=exp_dt)     lab_path.grid(row=0,column=0,sticky=W)     ent_path.grid(row=0,column=1,sticky=W)     btn_exp.grid(row=1,column=1,sticky=W)           res=sql.select_data()       def get_tk():     '''获取一个Tk对象'''     return Tk()  def set_tk_title(tk, title):     '''给窗口定义title'''     if title is not None and title != '':         tk.title(title)     else:         tk.title('xxx管理系统 v1.0')  def set_tk_geometry(tk, size):     '''设置窗口大小,size的格式为:width x height,如:size = '200x100'.'''     if size is not None and size != '':         tk.geometry(size)     else:         tk.geometry('1024x600')         # tk.resizable(width=True,height=True) # 宽不可变 高可变  默认True   def get_menu(tk):     '''获取一个菜单条'''     return Menu(tk)          def menu_cy(menubar):     '''定义菜单 常用'''     #MENU_CY_ITEMS = ['查看','录入','编辑','删除','exit']     cymenu = Menu(menubar, tearoff=1)     cymenu.add_command(label=MENU_CY_ITEMS[0],command=select_action)     cymenu.add_command(label=MENU_CY_ITEMS[1],command=insert_action)       cymenu.add_command(label=MENU_CY_ITEMS[2],command=edit_action)     cymenu.add_command(label=MENU_CY_ITEMS[3],command=export_data)     cymenu.add_separator()     cymenu.add_command(label=MENU_CY_ITEMS[4],command=root.destroy)     menubar.add_cascade(label=MENU_ITEMS[0], menu=cymenu)  def meun_help(menber):     '''定义菜单Help'''     help_menu = Menu(menubar, tearoff=1)     help_menu.add_command(label=MENU_HELP_ITEMS[0])     help_menu.add_command(label=MENU_HELP_ITEMS[1])     menubar.add_cascade(label=MENU_ITEMS[1], menu=help_menu)        def init_menu_bar(menubar):     '''初始化菜单条'''     menu_cy(menubar)     #常用     meun_help(menubar)     #help     # menubar.add_cascade(label=MENU_ITEMS[-1], menu=meun_help)       #获得窗口对象  root = get_tk() #设置窗口大小 set_tk_geometry(root, '') #设置窗口title set_tk_title(root, 'XXXXX信息管理系统v.1.0') #获取菜单对象 menubar = get_menu(root) #初始化菜单 init_menu_bar(menubar) #加载菜单配置 root.config(menu=menubar) # root.iconbitmap('D:\\Users\he_zh\\PycharmProjects\\stjx\\logo.bmp') mainloop()  #     mainloop()  # def main(): #     #获得窗口对象 #     root = get_tk() #     #设置窗口大小 #     set_tk_geometry(root, '') #     #设置窗口title #     set_tk_title(root, 'Python 3.3.2 Shell') #     #获取菜单对象 #     menubar = get_menu(root) #     #初始化菜 #     init_menu_bar(menubar) #     #加载菜单配置 #     root.config(menu=menubar)  #     mainloop()    # if __name__ == "__main__": #     main() 

 

本文发表于2018年04月03日 22:38
(c)注:本文转载自https://my.oschina.net/zhiyonghe/blog/1789371,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1667 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1