Я использую базу данных mongodb со своим приложением во Flask и подключаю ее к приложению с помощью pymongo. У меня возникла проблема при попытке сохранить документы в моей базе данных mongodb, см. Ошибку ниже:
127.0.0.1 - - [01/Oct/2019 15:56:47] "POST /movie HTTP/1.1" 500 -
Traceback (most recent call last):
File "/home/lancelot/.local/lib/python3.6/site-packages/pymongo/mongo_client.py", line 1385, in _retry_with_session
return func(session, sock_info, retryable)
File "/home/lancelot/.local/lib/python3.6/site-packages/pymongo/collection.py", line 595, in _insert_command
retryable_write=retryable_write)
File "/home/lancelot/.local/lib/python3.6/site-packages/pymongo/pool.py", line 613, in command
user_fields=user_fields)
File "/home/lancelot/.local/lib/python3.6/site-packages/pymongo/network.py", line 167, in command
parse_write_concern_error=parse_write_concern_error)
File "/home/lancelot/.local/lib/python3.6/site-packages/pymongo/helpers.py", line 159, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: Transaction numbers are only allowed on storage engines that support document-level locking
Это моя функция просмотров, которая перехватывает запрос на публикацию:
@app.route('/movie', methods = ['GET','POST'])
def add_movie():
movie = mongo.db.movies
try :
name = request.json['name']
print(name)
movie_id = movie.insert({'name':name})
new_movie = movie.find_one({'_id': movie_id })
output = {'name' : new_movie['name']}
return jsonify({'result' : output})
except TypeError:
return jsonify({'result' : 'niet'})
и мой POST-запрос выполняется с помощью AJAX-запроса в одном из моих шаблонов:
$(document).ready(function() {
$('#movies_btn').click(function() {
$.ajax({
url: "{{ url_for('add_movie') }}",
type: 'POST',
contentType: 'application/json;charset=UTF-8',
data: JSON.stringify({'name':'oui'}),
success: res => {
alert('stop')
window.location.href="{{ url_for('index') }}"
},
error: xhr => {
alert(xhr.responseText.split('\n')[1])
}
})
})
})
Можете ли вы помочь мне с этой проблемой? Я попытался посмотреть документацию на фляжку для фляги, но не нашел ответа.
Спасибо