2018年5月29日笔记

  本地已有一个单词本文件 "dictionary.txt",编写脚本实现单词的模糊查询功能

  • 1)连接到mysql上并定义表dictionary的表结构
 1 from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
 2 
 3 
 4 engine = create_engine('mysql+pymysql://root:[email protected]/sqlalchemy')
 5 
 6 metadata = MetaData(engine)
 7 
 8 dictionary = Table('dictionary', metadata,
 9              Column('id', Integer, primary_key=True),
10              Column('key', String(50)),
11              Column('value', String(50))
12              )
13 
14 metadata.create_all(engine)
  • 2)将dictionary.txt录入至dictionary这张表中
 1 import codecs
 2 from sqlalchemy import Integer, Column, String, create_engine
 3 from sqlalchemy.ext.declarative import declarative_base
 4 from sqlalchemy.orm import sessionmaker
 5 
 6 
 7 
 8 engine = create_engine('mysql+pymysql://root:[email protected]/sqlalchemy?charset=utf8')
 9 
10 Base = declarative_base()
11 class Dictionary(Base):
12     __tablename__ = 'dictionary'
13     id = Column(Integer, primary_key=True)
14     key = Column(String(50))
15     value = Column(String(50))
16 
17 DBSession = sessionmaker(bind=engine)
18 session = DBSession()
19 
20 
21 
22 class HandleData(object):
23     def __init__(self, dataFile):
24         self.dataFile = dataFile
25     def make_data_to_str(self):
26         with codecs.open(self.dataFile, encoding='utf-8') as file:
27             for (num, value) in enumerate(file):
28                 line = value.strip().split()
29                 diction = Dictionary(id=num+1, key=line[0], value=line[1])
30                 session.add(diction)
31         session.commit()
32 
33 
34 handleData = HandleData('dictionary.txt')
35 handleData.make_data_to_str()
36 session.close()
  • 3)根据用户输入的英文单词进行模糊查询
 1 from sqlalchemy import create_engine, Integer, Column, String
 2 from sqlalchemy.ext.declarative import declarative_base
 3 from sqlalchemy.orm import sessionmaker
 4 
 5 engine = create_engine('mysql+pymysql://root:[email protected]/sqlalchemy?charset=utf8')
 6 
 7 Base = declarative_base()
 8 class Dictionary(Base):
 9     __tablename__ = 'dictionary'
10     id = Column(Integer, primary_key=True)
11     key = Column(String(50))
12     value = Column(String(50))
13 
14 DBSession = sessionmaker(bind=engine)
15 session = DBSession()
16 
17 word = input("please input your a word:")
18 result =session.query(Dictionary).filter(Dictionary.key.like("%{0}%".format(word))).all()
19 for each in result:
20     print(each.id, each.key, each.value)

猜你喜欢

转载自www.cnblogs.com/karl-python/p/9114161.html