问题描述
当我运行 jargon.html 和 editjargon.html 模板页面时, app.py 文件。我的项目是使用 Materialize , Flask 和 MongoDB地图集作为数据库的圣语行话。
下面是 jargon.html 模板页面,该页面具有一个链接到 editjargon.html 模板页面
的按钮jargon.html 模板页面
<!DOCTYPE html>
{% extends 'base.html' %}
{% block title %}browse Jargon by scrolling{% endblock title %}
<!-- Block Content starts here -->
{% block content %}
<!-- Block Header content starts here -->
{% block header %}
<p class="flow-text">browse the Jargon by scrolling below.</p>
{% endblock header %}
<!-- Block Header content ends here -->
<!-- Main content starts here -->
{% block main %}
<div class="row">
{% for jar in jargon %}
<article>
<h1 class="center-align">Jargon</h1>
<div class="row">
<div class="col s12">
<p class="flow-text">
<em>{{jar.category_name}}</em>
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong>{{jar.word}}</strong>
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong style="color: #3e2723;">DeFinition:</strong> <em>{{jar.deFinition}}</em>
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong style="color: #1b5e20;">Meaning:</strong> <em>{{jar.meaning}}</em>
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong>Synonyms:</strong> {{jar.synonyms}}
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong>Opposite:</strong> {{jar.antonyms_or_opposite}}
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong>Part of Speech:</strong> {{jar.part_of_speech}}
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong>Alphabet:</strong> {{jar.alphabets}}
</p>
</div>
</div>
<div class="row">
<div class="col s12">
<p class="flow-text">
<strong>Date Added:</strong> {{jar.date_added}}
</p>
</div>
</div>
<div class="row">
<div class="col s3 m2 l1 xl1">
<a href="{{url_for('edit_jargon',jargon_id=jargon._id)}}"
class="waves-effect waves-light btn btn_small deep-purple darken-4"
style="color: #fff59d; font-weight: 600;">Edit</a>
</div>
</div>
</article>
{% endfor %}
</div>
{% endblock main %}
<!-- Block Main content ends here -->
{% endblock %}
<!-- Block content ends here -->
editjargon.html 模板页面
<!DOCTYPE html>
{% extends 'base.html' %}
{% block title %}Edit jargon{% endblock title %}
<!-- Block Content starts here -->
{% block content %}
<!-- Block Header content starts here -->
{% block header %}
<p class="flow-text">
Your contribution towards the growth of <em>sheng</em> is warmly and greatly
encouraged. This can be done by simply filling the form below. Keep in mind that
through your contribution we can expand the family of sheng speakers and in turn provide
context when expressing ourselves using the sheng lingo.
</p>
{% endblock header %}
<!-- Block Header content ends here -->
<!-- Block Main content starts here -->
{% block main %}
<div class="row">
<article>
<h2>Edit jargon</h2>
<form action="{{ url_for('update_jargon',jargon_id=jargon._id) }}" method="POST">
<fieldset>
<legend>Edit jargon form</legend>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix" style="color: #311b92;">format_list_bulleted</i>
<select id="category" name="category_name">
<option value="" disabled selected>Choose your option</option>
<option value="{{cat.catergory_name}}">{{cat.category_name}}</option>
</select>
<label>Category</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix" style="color: #311b92;">edit</i>
<input id="jargon" name="jargon" type="text" class="validate" value="{{word}}">
<label for="jargon">Jargon</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6 l6 xl6">
<i class="material-icons prefix" style="color: #311b92;">edit</i>
<input id="jargon-deFinition" name="jargon-deFinition" type="text" class="validate"
data-length="200" value="{{deFinition}}">
<label for="jargon-deFinition">DeFinition of Word or Expression</label>
<span class="helper-text" data-error="wrong" data-success="right">DeFinition of the word
or expression in English.</span>
</div>
</div>
<div class="input-field col s12 m6 l6 xl6">
<i class="material-icons prefix" style="color: #311b92;">edit</i>
<input id="jargon-meaning" name="jargon-meaning" type="text" class="validate"
data-length="200" value="{{meaning}}">
<label for="jargon-meaning">Meaning of Word or Expression</label>
<span class="helper-text" data-error="wrong">Meaning of the word or expression in
English.</span>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix" style="color: #311b92;">edit</i>
<input id="jargon-synonym" name="jargon-synonym" type="text" class="validate"
value="{{synonyms}}">
<label for="jargon-synonym">Synonyms of the word or expression</label>
<span class="helper-text" data-error="wrong" data-success="right">Words or expression
with a similar meaning e.g. <em>1<sup>st</sup> synonym,2<sup>nd</sup> synonym,...</em></span>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix" style="color: #311b92;">edit</i>
<input id="jargon-antonyms" name="jargon-antonyms" type="text" class="validate"
value="{{antonyms_or_opposite}}">
<label for="jargon-antonyms">Opposites of the word or expression</label>
<span class="helper-text" data-error="wrong" data-success="right">Words or
expression with a similar meaning e.g. <em>1<sup>st</sup> synonym,...</em></span>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix" style="color: #311b92;">format_list_bulleted</i>
<select id="part-of-speech" name="category_name">
<option value="" disabled selected>Choose your option</option>
<option value="{{part_of_speech}}">{{part_of_speech}}</option>
</select>
<label>Part of Speech</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix" style="color: #311b92;">edit</i>
<input id="jargon-alphabet" name="jargon-synonym" type="text" class="validate"
value="{{alphabets}}">
<label for="jargon-alphabet">Alphabet of the word or expression</label>
<span class="helper-text" data-error="wrong" data-success="right">Write the first
alphabet of the word or expression <em>e.g. "Kata tamaa - Kk","Bonga -
Bb"...</em></span>
<br>
</div>
</div>
<div class="row">
<div class="col s12">
<i class="material-icons prefix" style="color: #311b92;">date_range</i>
<input id="input-date-added" name="input-date-added" type="text" class="datepicker"
value="{{date_added}}">
<label for="input-date-added">Date of the day the word or expression was added.</label>
</div>
</div>
<div class="row">
<button class="btn waves-effect waves-light deep-purple darken-4" style="color: #fff59d;"
type="submit" name="action">Update Jargon
<i class="material-icons right">playlist_add</i>
</button>
<a href="{{ url_for('delete_jargon') }}"
class="waves-effect waves-light btn deep-purple darken-4"
style="color: #fff59d;">
<i class="material-icons right" style="color: #fff59d;">delete</i>Delete
</a>
<a href="{{ url_for('browse_jargon') }}" class="waves-effect waves-light btn deep-purple darken-4"
style="color: #fff59d;">
<i class="material-icons right" style="color: #fff59d;">cancel</i>Cancel
</a>
</div>
</fieldset>
</form>
</article>
</div>
{% endblock main %}
<!-- Block Main content ends here -->
{% endblock %}
<!-- Block content ends here -->
这是当我加载页面时在浏览器窗口中显示的 Traceback 消息。
Traceback (most recent call last):
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 2464,in __call__
return self.wsgi_app(environ,start_response)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 2450,in wsgi_app
response = self.handle_exception(e)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 1867,in handle_exception
reraise(exc_type,exc_value,tb)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\_compat.py",line 39,in reraise
raise value
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 2447,in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 1952,in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 1821,in handle_user_exception
reraise(exc_type,line 1950,in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\app.py",line 1936,in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\app.py",line 37,in browse_jargon
return render_template("jargon.html",File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\templating.py",line 137,in render_template
return _render(
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\flask\templating.py",line 120,in _render
rv = template.render(context)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\jinja2\environment.py",line 1090,in render
self.environment.handle_exception()
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\jinja2\environment.py",line 832,in handle_exception
reraise(*rewrite_traceback_stack(source=source))
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\jinja2\_compat.py",line 28,in reraise
raise value.with_traceback(tb)
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\templates\jargon.html",line 3,in top-level template code
{% extends 'base.html' %}
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\templates\base.html",line 70,in top-level template code
{% block content %}
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\templates\jargon.html",line 15,in block "content"
{% block main %}
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\templates\jargon.html",line 85,in block "main"
<a href="{{url_for('edit_jargon',jargon_id=jargon._id)}}"
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\jinja2\environment.py",line 475,in getattr
return obj[attribute]
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\pymongo\cursor.py",line 612,in __getitem__
self.__check_okay_to_chain()
File "C:\Users\madib\OneDrive\Desktop\sheng-jargon-application\venv\Lib\site-packages\pymongo\cursor.py",line 401,in __check_okay_to_chain
raise InvalidOperation("cannot set options after executing query")
pymongo.errors.InvalidOperation: cannot set options after executing query
这是 appy.py 文件中编写的 jargon.html 和 editjargon.html 模板的@app.route
@app.route('/browse_jargon/',endpoint='browse_jargon')
def browse_jargon():
jargon = mongo.db.jargon.find()
return render_template("jargon.html",jargon=jargon)
@app.route('/edit_jargon/<jargon_id>')
def edit_jargon(jargon_id):
the_jargon = mongo.db.jargon.find_one({"_id": ObjectId(jargon_id)})
all_categories = mongo.db.categories.find()
return render_template('editjargon.html',task=the_jargon,categories=all_categories)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)