在创建新帖子时保存用户文档通常涉及到前端和后端的协同工作。以下是一个基本的流程和相关概念:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Create Post</title>
</head>
<body>
<form id="postForm">
<textarea name="content" placeholder="Write your post here..."></textarea>
<input type="file" name="document">
<button type="submit">Submit</button>
</form>
<script>
document.getElementById('postForm').addEventListener('submit', function(event) {
event.preventDefault();
const formData = new FormData(this);
fetch('/api/posts', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
});
</script>
</body>
</html>
from flask import Flask, request, jsonify
import os
app = Flask(__name__)
@app.route('/api/posts', methods=['POST'])
def create_post():
content = request.form.get('content')
document = request.files.get('document')
if not content or not document:
return jsonify({'error': 'Missing content or document'}), 400
# Save the document to a secure location
doc_path = os.path.join('uploads', document.filename)
document.save(doc_path)
# Save post information to the database (example using SQLite)
import sqlite3
conn = sqlite3.connect('posts.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO posts (content, document_path) VALUES (?, ?)', (content, doc_path))
conn.commit()
conn.close()
return jsonify({'message': 'Post created successfully'}), 201
if __name__ == '__main__':
app.run(debug=True)
通过以上步骤和方法,可以有效地在创建新帖子时保存用户文档,并确保系统的稳定性和安全性。
领取专属 10元无门槛券
手把手带您无忧上云