【发布时间】:2023-04-07 01:54:01
【问题描述】:
我正在尝试让 TinyMCE 以烧瓶中 wtforms 生成的形式替换 textarea。 在此处遵循官方快速入门和本文:https://www.kevin7.net/post_detail/2,但仍然没有被替换。
我已经尝试过云安装和本地安装..
HTML:
{% extends "base.html" %}
{% block content %}
<script src="https://cdn.tiny.cloud/1/removedkey/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
<!-- <script src="{{ url_for('static', filename='tinymce/tinymce.min.js') }}"></script> -->
<script>
tinymce.init({
selector: '#clientinfo',
height: 500,
menubar: false,
plugins: [
'advlist lists charmap print preview hr anchor pagebreak spellchecker',
'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime nonbreaking',
'save table contextmenu directionality template paste textcolor codesample'
],
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | print preview media fullpage | forecolor backcolor | codesample',
codesample_languages: [
{text: 'HTML/XML', value: 'markup'},
{text: 'JavaScript', value: 'javascript'},
{text: 'CSS', value: 'css'},
{text: 'Processing', value: 'processing'},
{text: 'Python', value: 'python'}
content_css: [
'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
'//www.tiny.cloud/css/codepen.min.css'
]
});
</script>
<h1>Hi, {{ current_user.name }}!</h1>
<form action="" method="post">
{{ form.hidden_tag() }}
<p>
{{ form.clientname.label }}<br>
{{ form.clientname(cols=32, rows=4) }}<br>
{% for error in form.clientname.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.clientss.label }}<br>
{{ form.clientss(cols=32, rows=4) }}<br>
</p>
<p>
{{ form.clientemail.label }}<br>
{{ form.clientemail(cols=32, rows=4) }}<br>
{% for error in form.clientemail.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.clientphone.label }}<br>
{{ form.clientphone(cols=32, rows=4) }}<br>
{% for error in form.clientphone.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.clientaddress.label }}<br>
{{ form.clientaddress(cols=32, rows=4) }}<br>
</p>
<p>
{{ form.clientzip.label }}<br>
{{ form.clientzip(cols=32, rows=4) }}<br>
</p>
<p>
{{ form.clientcity.label }}<br>
{{ form.clientcity(cols=32, rows=4) }}<br>
</p>
<p>
{{ form.clientinfo.label }}<br>
{{ form.clientinfo(cols=32, rows=4) }}<br>
</p>
<p>
{{ form.submit() }} {{ form.cancel() }}
</p>
</form>
{% endblock %}
textarea 的 id 是#clientinfo,是自动生成的。
这是flask中的表单代码:
class PostForm(FlaskForm):
clientname = StringField('Name', validators=[Optional()])
clientss = StringField('Social Security number', validators=[Optional()])
clientemail = StringField('Email', validators=[Optional()])
clientphone = StringField('Phone', validators=[Optional()])
clientaddress = StringField('Address', validators=[Optional()])
clientzip = StringField('ZIP', validators=[Optional()])
clientcity = StringField('City', validators=[Optional()])
clientinfo = TextAreaField('Info',
validators=[Optional(), Length(max=2048)])
submit = SubmitField('Submit')
cancel = SubmitField('Cancel')
这是路线:
@app.route('/addpost', methods=['GET', 'POST'])
@login_required
def addpost():
form = PostForm()
if form.validate_on_submit():
if form.submit.data:
post = Post(clientname=form.clientname.data,
clientss=form.clientss.data,
clientemail=form.clientemail.data,
clientphone=form.clientphone.data,
clientaddress=form.clientaddress.data,
clientzip=form.clientzip.data,
clientcity=form.clientcity.data,
clientinfo=form.clientinfo.data,
author=current_user)
db.session.add(post)
db.session.commit()
flash('Client data successfully added!')
return redirect(url_for('addpost'))
else:
return redirect(url_for('index'))
return render_template('addpost.html', title='Add Post', form=form)
【问题讨论】:
-
对此有何想法?
标签: python-3.x flask tinymce jinja2 flask-wtforms