本地已有一个单词本文件 "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:passwd123@192.168.0.1/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:passwd123@192.168.0.1/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:passwd123@192.168.0.1/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)