admin.py

from flask import Blueprint, render_template, request, redirect, url_for, url_for, send_from_directory
from flask import Response, Flask
from waws_app.utils import tools

admin_blueprint = Blueprint('admin', __name__)
from flask_ckeditor import CKEditor, CKEditorField, upload_fail, upload_success
import os
from . import PostForm
from . import mysql_
import time

basedir = "/static/uploads/images"

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


@admin_blueprint.route("/admin")
def get_admin():
    return render_template("./admin/index.html")


@admin_blueprint.route("/admin/artile_list")
def get_buttons():
    return render_template("./admin/artile_list.html")


@admin_blueprint.route("/admin/power_set")
def get_rabc():
    return render_template("./admin/power_set.html")


@admin_blueprint.route("/admin/profile")
def get_prefile():
    return render_template("./admin/profile.html")


@admin_blueprint.route("/admin/login")
def get_login():
    return render_template("./admin/login.html")


@admin_blueprint.route("/admin/gallery")
def get_gallery():
    return render_template("./admin/gallery.html")


@admin_blueprint.route("/admin/edit_pwd")
def get_pwd():
    return render_template("./admin/edit_pwd.html")


@admin_blueprint.route("/admin/doc")
def get_doc():
    return render_template("./admin/doc.html")


@admin_blueprint.route("/admin/add_prefect_url")
def add_prefect_url():
    category_list = [{"id":key,"doc":value}for key,value in url_category_dict.items()]
    return render_template("./admin/add_prefect_url.html",category_list=category_list)


@admin_blueprint.route("/admin/add_prefect_url_action",methods=['GET', 'POST'])
def add_prefect_url_action():
    type = request.form.get("type")
    name = request.form.get("name")
    url = request.form.get("url")
    sql = "insert into prefect_blog_url(name,url,category) VALUES(%s,%s,%s)"
    mysql_.cursor.execute(sql,[name,url,type])
    mysql_.conn.commit()
    return render_template("./admin/index.html")


@admin_blueprint.route('/admin/add_doc', methods=['GET', 'POST'])
def index():
    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]})

    sql = "select id,name from author"
    author_list = []
    mysql_.cursor.execute(sql, )
    author_ = mysql_.cursor.fetchall()
    for author in author_:
        author_list.append({"id": author[0], "name": author[1]})
    form = PostForm()
    return render_template('./admin/add_doc.html', form=form, category_list=category_list, author_list=author_list)


@admin_blueprint.route("/login", methods={"POST"})
def login():
    username = request.form.get("username")
    password = request.form.get("password")
    captcha = request.form.get("captcha")
    if username == "waws520" and password == "123456":
        return render_template("./admin/index.html")
    else:
        return render_template("./admin/error.html")


@admin_blueprint.route("/admin/add_article", methods={"POST"})
def add_article():
    form = PostForm()
    type = request.form.get("type")
    author = request.form.get("author")
    title = request.form.get("title")
    seo_keywords = request.form.get("seo_keywords")
    tags = request.form.get("tags")
    f = request.files.get('file')
    filename = tools.create_uuid() + "." + f.filename.split(".")[-1]
    file_sql_path = os.path.join(basedir, filename)
    print(file_sql_path)
    file_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + "/static/uploads/images/" + filename
    f.save(file_path)

    sql = "insert into picture(pic_url) values(%s)"
    mysql_.cursor.execute(sql, [file_sql_path])
    mysql_.conn.commit()
    pic_id = mysql_.cursor.lastrowid

    if form.validate_on_submit():
        body = form.body.data
        sql = "insert into article(title,author_id,info,content,category_id,pic_id) values(%s,%s,%s,%s,%s,%s)"
        mysql_.cursor.execute(sql, [title, author, seo_keywords, body, type, pic_id])
        mysql_.conn.commit()
        return render_template("./admin/index.html")
        # return render_template("./admin/article_detail.html",body=body)
    else:
        return render_template("./admin/error.html")


@admin_blueprint.route('/static/uploads/images_/<filename>')
def uploaded_files(filename):
    path = os.path.join(basedir, filename)
    return send_from_directory(path, filename)


@admin_blueprint.route('/upload', methods=['POST'])
def upload():
    f = request.files.get('upload')
    extension = f.filename.split('.')[-1].lower()
    if extension not in ['jpg', 'gif', 'png', 'jpeg']:
        return upload_fail(message='Image only!')
    filename = tools.create_uuid() + "." + f.filename.split(".")[-1]
    file_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + "/static/uploads/images_/" + filename
    f.save(file_path)
    time.sleep(2)
    url = url_for('admin.uploaded_files', filename=filename)
    return upload_success(url=url)

admin.py

posted @ 2021-04-03 17:27  waws_520  阅读(90)  评论(0编辑  收藏  举报