Exemple #1
0
def characteristic_search(info,weight,height):
    db = opsql.Database()
    para=[]
    select_sql="where "
    for key in info:
        if not info[key]=='null':
            select_sql+=key+"=%s and "
            para.append(info[key])
    select_sql+="height>=%s and height<=%s and weight>=%s and weight<=%s"
    para.extend([str(height[0]),str(height[1]),str(weight[0]),str(weight[1])])
    sql='select s.servent_id,s.servent_name from servent s ' \
        'inner join servent_and_prototype sp on s.servent_id=sp.servent_id ' \
        'inner join prototype_and_origin po on sp.prototype_id=po.prototype_id ' \
        'inner join prototype_and_region pr on sp.prototype_id=pr.prototype_id ' \
        'inner join region r on pr.region_id=r.region_id ' \
        'inner join origin o on po.origin_id=o.origin_id ' \
        'inner join servent_and_alignment sa on sa.servent_id=s.servent_id ' \
        'inner join alignment a on a.alignment_id=sa.alignment_id ' \
        'inner join servent_and_class sac on sac.servent_id=s.servent_id ' \
        'inner join class c on sac.class_id=c.class_id '
    sql+=select_sql+" group by s.servent_id;"
    result = db.select(sql,para)
    dic_info = []  # 所有人
    for row in result:
        dic_one_person_info = {}  # 单个人
        dic_one_person_info['id'] = str(row[0])
        dic_one_person_info["servent_name"]=row[1]
        servent_profile_pic_sql="select profile_pic from servent_profile_pic where servent_id=%s;"
        dic_one_person_info["servent_profile_pic"] = [i[0] for i in db.select(servent_profile_pic_sql,[row[0]])][0]
        dic_info.append(dic_one_person_info)
    db.close()
    return dic_info
Exemple #2
0
def origin_search(origin):
    db = opsql.Database()
    search = '%'
    for i in origin:
        search += i
        search += '%'
    sql = "select s.servent_id,servent_name,profile_pic from servent s " \
          "inner join servent_and_prototype sp on s.servent_id=sp.servent_id " \
          "inner join prototype p on sp.prototype_id=p.prototype_id " \
          "inner join servent_profile_pic spp on s.servent_id = spp.servent_id " \
          "inner join prototype_and_origin po on p.prototype_id = po.prototype_id " \
          "inner join origin o on po.origin_id = o.origin_id " \
          "where origin_name like %s;"
    result = db.select(sql, [search])
    dic_info = []  # 所有人
    for row in result:
        dic_one_person_info = {}  # 单个人
        dic_one_person_info['id'] = str(row[0])
        dic_one_person_info["servent_name"] = row[1]
        dic_one_person_info["servent_profile_pic"] = row[2]
        dic_info.append(dic_one_person_info)
    db.close()
    return dic_info


#print(name_search("兰陵王",c.conn2_info))
Exemple #3
0
def get_attribute():
    db = opsql.Database()
    dic_info = {}  # 4个list
    region_sql="select region_name from region;"
    origin_sql ="select origin_name from origin;"
    alignment_sql ="select alignment_name from alignment;"
    servent_class_sql ="select class_name from class;"
    dic_info['region']=[i[0] for i in db.select(region_sql,[])]
    dic_info['origin'] =[i[0] for i in db.select(origin_sql,[])]
    dic_info['alignment'] =[i[0] for i in db.select(alignment_sql,[])]
    dic_info['servent_class'] =[i[0] for i in db.select(servent_class_sql,[])]
    db.close()
    return dic_info
Exemple #4
0
def name_search(name):
    db = opsql.Database()
    search_name = "%"
    for i in name:
        search_name += i
        search_name += "%"
    sql = "select servent_id,servent_name from servent where servent_name like %s;"
    result = db.select(sql, [search_name])
    dic_info = []  # 所有人
    for row in result:
        dic_one_person_info = {}  # 单个人
        dic_one_person_info['id'] = str(row[0])
        dic_one_person_info["servent_name"] = row[1]
        temp_sql = "select profile_pic from servent_profile_pic where servent_id= %s;"
        re = [i[0] for i in db.select(temp_sql, [row[0]])]
        dic_one_person_info["servent_profile_pic"] = re[0]
        dic_info.append(dic_one_person_info)
    db.close()
    return dic_info
Exemple #5
0
def region_search(region):
    db = opsql.Database()
    search = '%'
    for i in region:
        search += i
        search += '%'
    sql = "select s.servent_id,servent_name,profile_pic from servent s " \
          "inner join servent_and_prototype sp on s.servent_id=sp.servent_id " \
          "inner join prototype p on sp.prototype_id=p.prototype_id " \
          "inner join servent_profile_pic spp on s.servent_id = spp.servent_id " \
          "inner join prototype_and_region pr on p.prototype_id = pr.prototype_id " \
          "inner join region r on pr.region_id = r.region_id " \
          "where region_name like %s;"
    result = db.select(sql, [search])
    dic_info = []  # 所有人
    for row in result:
        dic_one_person_info = {}  # 单个人
        dic_one_person_info['id'] = str(row[0])
        dic_one_person_info["servent_name"] = row[1]
        dic_one_person_info["servent_profile_pic"] = row[2]
        dic_info.append(dic_one_person_info)
    db.close()
    return dic_info
Exemple #6
0
from basic_sql_op import op_database as opsql
db = opsql.Database(opsql.conn2_info)
str = "1 or 1=1;"
sql = "select * from author where author_id=%s"
sql2 = "select * from author where contains(author_name,超)"
print(sql)
result = db.select(sql, [str])
print(result)
def explorer_infomation(id):
    db = opsql.Database()
    dic_info = {}
    big_sql = "select region_name,origin_name,prototype_name,region_id,origin_id,prototype_id from explorer_infomation1 where servent_id=%s;"
    res = db.select(big_sql, [id])
    region_res = list(set([i[0] for i in res]))
    origin_res = list(set([i[1] for i in res]))
    prototype_res = list(set([i[2] for i in res]))
    dic_info["region"] = region_res[random.randint(0, len(region_res) - 1)]
    dic_info["origin"] = origin_res[random.randint(0, len(origin_res) - 1)]
    dic_info["prototype"] = prototype_res[random.randint(
        0,
        len(prototype_res) - 1)]
    region_id = list(set([i[3] for i in res]))[0]
    origin_id = list(set([i[4] for i in res]))[0]
    prototype_id = list(set([i[5] for i in res]))[0]
    dic_info['pedias'] = []
    pedias_sql="select p.pedia_id,pedia_name,pedia_url from pedia p " \
               "inner join pedia_name pn on p.pedia_id=pn.pedia_id " \
               "where prototype_id=%s;"
    pedias_res = db.select(pedias_sql, [prototype_id])
    for i in pedias_res:
        pedias_dic = {}
        pedias_dic['pedia_id'] = i[0]
        pedias_dic['pedia_name'] = i[1]
        pedias_dic['pedia_url'] = i[2]
        dic_info['pedias'].append(pedias_dic)
    print(region_id)
    print(origin_id)
    print(prototype_id)
    dic_info['articles'] = []
    articles_sql = "select a.article_id,article_title,article_content,author_name from article a " \
                   "left join region_and_article raa on raa.article_id=a.article_id " \
                   "left join origin_and_article oaa on oaa.article_id=a.article_id " \
                   "left join author_and_article aaa on a.article_id = aaa.article_id " \
                   "inner join author a2 on aaa.author_id = a2.author_id " \
                   "where region_id=%s or origin_id=%s"
    articles_res = db.select(articles_sql, [region_id, origin_id])
    for i in articles_res:
        articles_dic = {}
        articles_dic['article_id'] = i[0]
        articles_dic['article_title'] = i[1]
        articles_dic['article_content'] = i[2].replace('\n', '')
        articles_dic['author'] = i[3]
        dic_info['articles'].append(articles_dic)

    dic_info['books'] = []
    books_sql = "select book_name,isbn,writer_name from book b " \
                "inner join book_and_writer baw on b.book_id=baw.book_id " \
                "inner join writer w on w.writer_id=baw.writer_id" \
                " where b.book_id in " \
                "(select region_and_book.book_id from region_and_book where region_id=%s " \
                "union " \
                "select origin_and_book.book_id from origin_and_book where origin_id=%s);"
    books_res = db.select(books_sql, [region_id, origin_id])
    for i in books_res:
        books_dic = {}
        books_dic['book_title'] = i[0]
        books_dic['isbn_code'] = i[1]
        books_dic['book_writer'] = i[2]
        dic_info['books'].append(books_dic)
    db.close()
    return dic_info
def servent_infomation(id):
    db = opsql.Database()
    sql = "select * from servent where servent_id=%s;"
    result = db.select(sql, [id])
    dic_info = {}
    row = result[0]
    dic_info['servent_id'] = row[0]
    dic_info['servent_name'] = row[1]
    dic_info['servent_name_japanese'] = row[2]
    dic_info['servent_name_english'] = row[3]
    dic_info['height'] = row[4]
    dic_info['weight'] = row[5]
    dic_info['gender'] = row[6]
    dic_info['strength'] = row[7]
    dic_info['endurance'] = row[8]
    dic_info['agility'] = row[9]
    dic_info['mana'] = row[10]
    dic_info['luck'] = row[11]
    dic_info['noble_phantasm'] = row[12]
    dic_info['craft_name'] = row[13]
    dic_info['craft_description'] = row[14].replace('\n', '')
    dic_info['craft_src'] = row[15]
    alignment_sql="select alignment_name from servent_and_alignment sa " \
                  "inner join alignment a on sa.alignment_id=a.alignment_id " \
                  "where servent_id=%s;"
    alignment_res = [i[0] for i in db.select(alignment_sql, [id])]
    dic_info["alignment"] = alignment_res[random.randint(
        0,
        len(alignment_res) - 1)] if alignment_res != [] else 'unknown'
    class_sql = "select class_name from servent_and_class sc " \
                "inner join class c on sc.class_id=c.class_id " \
                "where servent_id=%s;"
    class_res = [i[0] for i in db.select(class_sql, [id])]
    dic_info["class"] = class_res[random.randint(
        0,
        len(class_res) - 1)] if class_res != [] else 'unknown'
    illustrator_sql = "select illustrator_name from servent_and_illustrator si " \
                      "inner join illustrator i on si.illustrator_id=i.illustrator_id " \
                      "where servent_id=%s;"
    illustrator_res = [i[0] for i in db.select(illustrator_sql, [id])]
    dic_info["illustrator"] = illustrator_res[random.randint(
        0,
        len(illustrator_res) - 1)] if illustrator_res != [] else 'unknown'
    voice_actor_sql = "select voice_actor_name from servent_and_voice_actor sva " \
                      "inner join voice_actor va on sva.voice_actor_id=va.voice_actor_id " \
                      "where servent_id=%s;"
    voice_actor_res = [i[0] for i in db.select(voice_actor_sql, [id])]
    dic_info["voice_actor"] = voice_actor_res[random.randint(
        0,
        len(voice_actor_res) - 1)] if voice_actor_res != [] else 'unknown'
    bond_text_sql = "select bond_text from servent_bond where servent_id=%s;"
    dic_info["bond_text"] = [i[0] for i in db.select(bond_text_sql, [id])]
    full_picture_sql = "select servent_picture from servent_full_pic where servent_id=%s;"
    full_picture_res = [i[0] for i in db.select(full_picture_sql, [id])]
    dic_info["full_picture"] = full_picture_res[random.randint(
        0,
        len(full_picture_res) - 1)] if full_picture_res != [] else 'unknown'
    big_sql = "select region_name,origin_name,prototype_name from servent_and_prototype sp " \
              "inner join prototype p on sp.prototype_id=p.prototype_id " \
              "inner join prototype_and_origin po on sp.prototype_id=po.prototype_id " \
              "inner join prototype_and_region pr on sp.prototype_id=pr.prototype_id " \
              "inner join region r on pr.region_id=r.region_id " \
              "inner join origin o on po.origin_id=o.origin_id " \
              "where servent_id=%s;"
    res = db.select(big_sql, [id])
    region_res = list(set([i[0] for i in res]))
    origin_res = list(set([i[1] for i in res]))
    prototype_res = list(set([i[2] for i in res]))
    dic_info["region"] = region_res[random.randint(
        0,
        len(region_res) - 1)] if region_res != [] else 'unknown'
    dic_info["origin"] = origin_res[random.randint(
        0,
        len(origin_res) - 1)] if origin_res != [] else 'unknown'
    dic_info["prototype"] = prototype_res[random.randint(
        0,
        len(prototype_res) - 1)] if prototype_res != [] else 'unknown'
    db.close()
    return dic_info