{/'title/':/'编程猫帖子助手后端主程序v0.1.4.20230717 - 帖子管理API/',/'description/':/'编程猫帖子助手后端主程序v0.1.4.20230717,提供帖子创建、更新、删除、获取等功能。/',/'keywords/':/'编程猫, 帖子助手, 后端, 主程序, API, 帖子管理, 创建, 更新, 删除, 获取/',/'content/':/'import hashlib//nimport json//nimport os//nimport sqlite3//nimport time//n//nimport flask//nfrom flask_cors import CORS//n//napp = flask.Flask('CodemaoForumHelper')//napp.debug = True # TODO//nCORS(app, supports_credentials=True)//n//nDATABASE_FILE = 'data.db'//nFORUMS_DIR = '/forums/'//n//ndef create_table()://n conn = sqlite3.connect(DATABASE_FILE)//n cur = conn.cursor()//n cur.execute('''//n CREATE TABLE IF NOT EXISTS data (//n id INTEGER PRIMARY KEY AUTOINCREMENT,//n title VARCHAR(50),//n token VARCHAR(42),//n type INTEGER,//n time INTEGER,//n like INTEGER DEFAULT 0,//n comments TEXT DEFAULT '[]'//n )//n ''')//n conn.commit()//n cur.close()//n conn.close()//n//n//ndef get_forum_by_id(id_)://n conn = sqlite3.connect(DATABASE_FILE)//n cur = conn.cursor()//n cur.execute('SELECT * FROM data WHERE id = ?', (id_,))//n data = cur.fetchone()//n cur.close()//n conn.close()//n return data or None//n//n//ndef get_forum_by_token(token)://n conn = sqlite3.connect(DATABASE_FILE)//n cur = conn.cursor()//n cur.execute('SELECT * FROM data WHERE token = ?', (token,))//n data = cur.fetchone()//n cur.close()//n conn.close()//n return data or None//n//n//ndef new_forum(title, type_)://n conn = sqlite3.connect(DATABASE_FILE)//n cur = conn.cursor()//n token = hashlib.md5(title.encode()).hexdigest() + str(int(time.time()))//n cur.execute('INSERT INTO data (title, token, type, time) VALUES (?, ?, ?, ?)',//n (title, token, type_, time.time()))//n conn.commit()//n cur.close()//n conn.close()//n return token//n//n//ndef update_forum(token, title, type_)://n conn = sqlite3.connect(DATABASE_FILE)//n cur = conn.cursor()//n cur.execute('UPDATE data SET title = ?, type = ?, time = ? WHERE token = ?',//n (title, type_, time.time(), token))//n conn.commit()//n cur.close()//n conn.close()//n//n//ndef del_forum(token)://n conn = sqlite3.connect(DATABASE_FILE)//n cur = conn.cursor()//n cur.execute('DELETE FROM data WHERE token = ?', (token,))//n conn.commit()//n cur.close()//n conn.close()//n//n//n@app.route('/forum/int:id_', methods=['GET'])//n def forum_get(id_)://n with open('forum_read.html', encoding='utf-8') as file://n return file.read()//n//n//n@app.route('/forum/data/int:id_', methods=['GET'])//n def forum_data_get(id_)://n data = get_forum_by_id(id_)//n if data is None://n return '帖子在数据库中不存在(error-F0001)'//n try://n with open(FORUMS_DIR + data[2], encoding='utf-8') as file://n return file.read()//n except FileNotFoundError://n return '帖子存在,但是找不到帖子对应的内容(error-B0001)', 404//n//n//n@app.route('/forum/info/int:id_', methods=['GET'])//n def forum_info_get(id_)://n data = get_forum_by_id(id_)//n if data is None://n return '帖子在数据库中不存在(error-F0001)'//n return json.dumps(data)//n//n//n@app.route('/forum/create', methods=['POST'])//n def create_forum()://n data = flask.request.json//n token = new_forum(data['title'], data['type'])//n with open(FORUMS_DIR + token, 'w') as file://n file.write(data['data'])//n return json.dumps({'id': get_forum_by_token(token)[0], 'token': token}), 201//n//n//n@app.route('/forum/update/data', methods=['POST'])//n def update_forum_data()://n data = flask.request.json//n forum_id = data['id']//n data_db = get_forum_by_id(forum_id)//n if data_db is None://n return '帖子在数据库中不存在(error-F0001)', 404//n elif data_db[2] != data['token']://n return '帖子的token错误(error-F0002)', 401//n if 'data' in data://n with open(FORUMS_DIR + data_db[2], 'w') as file://n file.write(data['data'])//n update_forum(data_db[2], data_db[1], data_db[3])//n return '更改成功(success-0001)', 201//n//n//n@app.route('/forum/update/info', methods=['POST'])//n def update_forum_info()://n data = flask.request.json//n forum_id = data['id']//n data_db = get_forum_by_id(forum_id)//n if data_db is None://n return '帖子在数据库中不存在(error-F0001)', 404//n elif data_db[2] != data['token']://n return '帖子的token错误(error-F0002)', 401//n update_forum(data_db[2], data['title'], data['type'])//n return '更改成功(success-0001)', 201//n//n//n@app.route('/forum/delete', methods=['POST'])//n def delete_forum()://n data = flask.request.json//n forum_id = data['id']//n data_db = get_forum_by_id(forum_id)//n if data_db is None://n return '帖子在数据库中不存在(error-F0001)', 404//n elif data_db[2] != data['token']://n return '帖子的token错误(error-F0002)', 401//n del_forum(data_db[2])//n return '删除成功(success-0002)', 201//n//n//ncreate_table()//n//n# 创建forums目录//nos.makedirs(FORUMS_DIR, exist_ok=True)//n//napp.run() # TODO/


原文地址: https://www.cveoy.top/t/topic/pX1q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录