Это не проблема Python или Flask, вы не заключили текстовое поле в форму, а в документации CodeMirror предлагается следующее (выделено мной):
CodeMirror.fromTextArea (textArea: TextAreaElement,? Config: object)
Этот метод предоставляет другой способ инициализации редактора.Он принимает узел DOM textarea в качестве первого аргумента и необязательный объект конфигурации в качестве второго.Он заменит текстовое поле на экземпляр CodeMirror и подключит форму этого текстового поля (если оно есть), чтобы содержимое редактора помещалось в текстовое поле, когда форма представленный .Текст в текстовой области будет предоставлять содержимое для редактора.
Попробуйте и подтвердите это с помощью простой формы:
<form action='detection'>
<textarea id='code' name='code'></textarea>
<button type="submit">Go!</button>
</form>
Служите локально, отправляя форму с произвольным текстомinput выдает следующее:
127.0.0.1 - - [21 / Jan / 2019 22:50:04] «GET / обнаружения? код = dfgdfgdfgggggggggg HTTP / 1.1»
Так что в вашем случае, похоже, вам нужно позвонить cm.save()
до вашего Ajax-запроса, по крайней мере, это то, что подсказывает мне быстрый взгляд на документацию.
Так что быстрое и грязное исправлениечтобы ваш код выглядел так:
<script>
$(document).ready(function(){
var code = document.getElementById('code');
var editor = CodeMirror.fromTextArea(code, {
lineNumbers : true,
theme : "duotone-dark",
});
$('#butt').click(function(){
editor.save(); // this is where the textarea content gets updated
var c=$('#code').val();
$.ajax({
url:"/detection",
type: "get",
data:{code:c},
success:function(response){
$('#lang').html(response.html);
},
error: function(xhr){
//do smtg
}
});
});
});
</script>