{/n/'title/': /'编程猫帖子助手后端程序v0.1.4.20230717 - Python Flask API 文档/',/n/'description/': /'这是一个使用 Flask 框架和 SQLite 数据库构建的编程猫帖子助手后端程序。它提供了 RESTful API 接口,用于创建、更新、获取和删除帖子。/',/n/'keywords/': /'编程猫, 帖子助手, 后端程序, Flask, API, SQLite, 数据库, RESTful, 创建, 更新, 获取, 删除, 帖子/',/n/'content/': /'///'import hashlib//nimport json//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//n//ndef create_table()://n conn = sqlite3.connect('data.db')//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('data.db')//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('data.db')//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('data.db')//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//nprint(new_forum('111', 1))//ndef update_forum(token, title, type_)://n conn = sqlite3.connect('data.db')//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('data.db')//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'])//ndef 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'])//ndef 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/' + 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'])//ndef 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'])//ndef create_forum()://n flask.request.form = json.loads(flask.request.data.decode())//n token = new_forum(flask.request.form['title'], flask.request.form['type'])//n with open('/forums/' + token, 'w') as file://n file.write(flask.request.form['data'])//n return str(get_forum_by_token(token)[0]) + ' ' + token, 201//n//n//n@app.route('/forum/update/data', methods=['POST'])//ndef update_forum_data()://n flask.request.form = json.loads(flask.request.data.decode())//n data = get_forum_by_id(flask.request.form['id'])//n if data is None://n return '帖子在数据库中不存在(error-F0001)', 404//n elif data[2] != flask.request.form['token']://n return '帖子的token错误(error-F0002)', 401//n if flask.request.form.get('data') is not None://n with open('/forums/' + data[2], 'w') as file://n file.write(flask.request.form['data'])//n update_forum(data[2], data[1], data[3])//n return '更改成功(success-0001)', 201//n//n//n@app.route('/forum/update/info', methods=['POST'])//ndef update_forum_info()://n flask.request.form = json.loads(flask.request.data.decode())//n data = get_forum_by_id(flask.request.form['id'])//n if data is None://n return '帖子在数据库中不存在(error-F0001)', 404//n elif data[2] != flask.request.form['token']://n return '帖子的token错误(error-F0002)', 401//n update_forum(data[2], flask.request.form['title'], flask.request.form['type'])//n return '更改成功(success-0001)', 201//n//n//n@app.route('/forum/delete', methods=['POST'])//ndef delete_forum()://n flask.request.form = json.loads(flask.request.data.decode())//n data = get_forum_by_id(flask.request.form['id'])//n if data is None://n return '帖子在数据库中不存在(error-F0001)', 404//n elif data[2] != flask.request.form['token']://n return '帖子的token错误(error-F0002)', 401//n del_forum(data[2])//n return '删除成功(success-0002)', 201//n//n//ncreate_table()//n//napp.run() # TODO//n//n//n这段flask(python)代码,sqlite没法用内容:这段代码是一个使用Flask框架和SQLite数据库的后端程序。它提供了一些API接口,用于创建、更新和删除帖子,并且可以获取帖子的详细信息和内容。//n//n在运行程序之前,需要先执行create_table()函数创建数据库表格。然后通过调用app.run()方法来启动服务器。//n//n这段代码中使用了Flask-CORS库来处理跨域请求,确保可以从其他域名的前端应用中访问后端接口。//n//n具体的接口包括://n//n1. GET /forum/int:id_:根据帖子的ID获取帖子的页面,返回HTML内容。//n2. GET /forum/data/int:id_:根据帖子的ID获取帖子的内容,返回帖子的文本内容。//n3. GET /forum/info/int:id_:根据帖子的ID获取帖子的详细信息,返回JSON格式数据。//n4. POST /forum/create:创建一个新的帖子,需要在请求体中包含标题、类型和内容。返回帖子的ID和token。//n5. POST /forum/update/data:更新帖子的内容,需要在请求体中包含帖子的ID、token和新的内容。//n6. POST /forum/update/info:更新帖子的标题和类型,需要在请求体中包含帖子的ID、token、新的标题和类型。//n7. POST /forum/delete:删除帖子,需要在请求体中包含帖子的ID和token。//n//n在数据库中,帖子的数据结构为://n//n- id: 帖子的ID(自增长)//n- title: 帖子的标题//n- token: 帖子的唯一标识符//n- type: 帖子的类型//n- time: 帖子的创建时间//n- like: 帖子的点赞数//n- comments: 帖子的评论列表(以JSON格式存储)//n//n注意:这段代码中的SQLite数据库文件名为///'data.db///',帖子的内容文件存储在///'/forums////'目录下。//n//n另外,这段代码还使用了hashlib库来生成帖子的token,使用了time库来获取当前时间。/

编程猫帖子助手后端程序v0.1.4.20230717 - Python Flask API 文档

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

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