tools.py

import random
import datetime

url_category_dict = {
    1: "深度学习",
    2: "前端&后端",
    3: "CV&NLP",
    4: "爬虫",
    5: "其他"
}


def create_uuid():  # 生成唯一的图片的名称字符串,防止图片显示时的重名问题
    nowTime = datetime.datetime.now().strftime("%Y%m%d%H%M%S")  # 生成当前时间
    randomNum = random.randint(0, 100)  # 生成的随机整数n,其中0<=n<=100
    if randomNum <= 10:
        randomNum = str(0) + str(randomNum)
    uniqueNum = str(nowTime) + str(randomNum)
    return uniqueNum


def get_category_list(mysql_):
    sql = "select id,category from category"
    category_list = []
    mysql_.cursor.execute(sql, )
    category_ = mysql_.cursor.fetchall()
    for category in category_:
        category_list.append({"id": category[0], "doc": category[1]})
    return category_list


def get_article_limit_20(page, mysql_):
    if page is None:
        page = 1
    id_ = (int(page) - 1) * 20
    sticky_list = []
    article_list = []
    sql = "select * from article limit 20 offset %s"
    mysql_.cursor.execute(sql, [id_])
    results = mysql_.cursor.fetchall()
    for result in results:
        id = result[0]
        title = result[1]
        author_id = result[2]
        info = result[3]
        category_id = result[5]
        pic_id = result[6]
        sticky = result[7]
        create_time = result[8]

        sql = "select name from author where id = %s"
        mysql_.cursor.execute(sql, [author_id])
        name = mysql_.cursor.fetchone()[0]

        sql = "select category from category where id = %s"
        mysql_.cursor.execute(sql, [category_id])
        category = mysql_.cursor.fetchone()[0]

        pic_url = ""
        if pic_id:
            sql = "select pic_url from picture where id = %s"
            mysql_.cursor.execute(sql, [pic_id])
            pic_url = mysql_.cursor.fetchone()[0]

        if sticky:
            sticky_list.append({
                "id": id,
                "style": 1,
                "title": title,
                "author": name,
                "info": info,
                "date": create_time,
                "category": category,
                "pics": []
            })
        else:
            if pic_id:
                article_list.append({
                    "id": id,
                    "style": 1,
                    "title": title,
                    "author": name,
                    "info": info,
                    "date": create_time,
                    "category": category,
                    "pic": pic_url
                })
            else:
                article_list.append({
                    "id": id,
                    "style": 0,
                    "title": title,
                    "author": name,
                    "category": category,
                    "info": info,
                    "date": create_time,
                })
    return sticky_list, article_list


def get_article_info(article_id, mysql_):
    sql = "select * from article where id = %s"
    mysql_.cursor.execute(sql, [int(article_id)])
    results = mysql_.cursor.fetchall()
    for result in results:
        id = result[0]
        title = result[1]
        author_id = result[2]
        info = result[3]
        content = result[4]
        category_id = result[5]
        sticky = result[7]
        create_time = result[8]

        sql = "select name from author where id = %s"
        mysql_.cursor.execute(sql, [author_id])
        name = mysql_.cursor.fetchone()[0]

        sql = "select category from category where id = %s"
        mysql_.cursor.execute(sql, [category_id])
        category = mysql_.cursor.fetchone()[0]
        article_dict = {
            "id": id,
            "style": 1,
            "title": title,
            "author": name,
            "info": info,
            "content": content,
            "date": create_time,
            "category": category,
        }
    return article_dict


def get_category_article(page, category_id, mysql_):
    if page is None:
        page = 1
    id_ = (int(page) - 1) * 20
    sticky_list = []
    article_list = []
    sql = "select category from category where id = %s"
    mysql_.cursor.execute(sql, [category_id])
    category = mysql_.cursor.fetchone()[0]

    sql = "select * from article where category_id = %s limit 20 offset %s"
    mysql_.cursor.execute(sql, [category_id, id_])
    results = mysql_.cursor.fetchall()
    for result in results:
        id = result[0]
        title = result[1]
        author_id = result[2]
        info = result[3]
        pic_id = result[6]
        sticky = result[7]
        create_time = result[8]

        sql = "select name from author where id = %s"
        mysql_.cursor.execute(sql, [author_id])
        name = mysql_.cursor.fetchone()[0]

        pic_url = ""
        if pic_id:
            sql = "select pic_url from picture where id = %s"
            mysql_.cursor.execute(sql, [pic_id])
            pic_url = mysql_.cursor.fetchone()[0]

        if sticky:
            sticky_list.append({
                "id": id,
                "style": 1,
                "title": title,
                "author": name,
                "info": info,
                "date": create_time,
                "category": category,
                "pics": []
            })
        else:
            if pic_id:
                article_list.append({
                    "id": id,
                    "style": 1,
                    "title": title,
                    "author": name,
                    "info": info,
                    "date": create_time,
                    "category": category,
                    "pic": pic_url
                })
            else:
                article_list.append({
                    "id": id,
                    "style": 0,
                    "title": title,
                    "author": name,
                    "category": category,
                    "info": info,
                    "date": create_time,
                })
    return sticky_list, article_list


def get_prefect_url(mysql_):
    sql = "select url,name,category from prefect_blog_url"
    mysql_.cursor.execute(sql, )
    results = mysql_.cursor.fetchall()
    url_dict = {}
    for result in results:
        url, name, category = result[0], result[1], result[2]
        if url_category_dict[int(category)] not in url_dict.keys():
            url_dict[url_category_dict[int(category)]] = []
        url_dict[url_category_dict[int(category)]].append({"url": url, "name": name})
    return url_dict

def get_article_by_time(page,mysql_):
    if page is None:
        page = 1
    id_ = (int(page) - 1) * 30
    article_list = []
    sql = "select id,title,update_time from article order by update_time desc limit 20 offset %s "
    mysql_.cursor.execute(sql, [id_])
    results = mysql_.cursor.fetchall()
    for result in results:
        id = result[0]
        title = result[1]
        update_time = result[2]
        u_time = str(update_time.year) + "-" + str(update_time.month) + "-" + str(update_time.day)
        article_list.append({"id":id,"title":title,"update_time":u_time})
    return article_list


if __name__ == '__main__':
    print(create_uuid())

tools.py

原文地址:https://www.cnblogs.com/waws1314/p/14614324.html