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