def marine_organism(page, state): if request.method == 'GET' and state == 0: if page is None: page = 1 context = { 'marine_organisms': Marine_organism.query.order_by('id').paginate(page=page, per_page=8), 'state': 0 } return render_template('marine_organism.html', **context) else: # 获取用户输入的关键字 # search和分页不能同时实现的原因在于,search第二次分页因为走得是第一条路,所以数据不一样了。先不考虑直接点击按钮的问题 key_word = request.form.get('organism_key_word') if key_word is None or key_word is "": key_word = myglobal.get_value() # 将关键字拼接成模糊字段 args = '%' + key_word + '%' else: myglobal.set_value(key_word) # 将关键字拼接成模糊字段 args = '%' + myglobal.get_value() + '%' marine_organism_search = Marine_organism.query.filter( Marine_organism.data_set_name.like(args) ).paginate(page=page, per_page=8) context = { 'marine_organisms': marine_organism_search, 'state': 1 } return render_template('marine_organism.html', **context)为什么运用myglobal全局变量
时间: 2024-03-30 11:33:32 浏览: 25
在这段代码中,全局变量 `myglobal` 的作用是记录用户的搜索关键字。在用户进行搜索操作时,如果关键字为空,则从 `myglobal` 中获取上一次搜索的关键字;如果关键字不为空,则将关键字保存到 `myglobal` 中,以备下一次搜索使用。
使用全局变量是为了方便在不同的函数之间共享数据,避免了传递参数的复杂度。同时,全局变量可以在整个应用程序中被访问和修改,因此需要注意全局变量的使用方式,避免出现数据竞争等问题。
在这段代码中,全局变量的使用是为了记录用户的搜索关键字,以便在分页或者其他操作时,能够重新使用这个关键字,进行下一次搜索。这样可以提高用户体验,减少用户的操作次数。
相关问题
@app.route('/organism/list/<int:page>/<int:state>', methods=['GET', 'POST']) def marine_organism(page, state): if request.method == 'GET' and state == 0: if page is None: page = 1 context = { 'marine_organisms': Marine_organism.query.order_by('id').paginate(page=page, per_page=8), 'state': 0 } return render_template('marine_organism.html', **context)代码中有类吗有对象吗
在这段代码中,有类和对象。
- 类:Marine_organism。可以看到,代码中有一行查询语句:`Marine_organism.query`,说明这里使用了名为Marine_organism的类来查询数据库中的数据。
- 对象:context。在这段代码中,定义了一个名为context的字典对象,它包含了一个键为'marine_organisms'的值,这个值是一个Marine_organism的查询结果集合。在模板中,可以通过这个对象来访问查询结果并进行展示。
# 单个海洋生物数据集的展示页面 @app.route('/marine_organism_one/<marine_organism_id>/', methods=['GET', 'POST']) def organism_one(marine_organism_id): # 如果是正常的加载当前页面 if request.method == 'GET': marine_organism_one = Marine_organism.query.filter(Marine_organism.id == marine_organism_id).first() # 根据数据集的归属类型,查询到所有属于本数据集的所有数据 organism_data = Organism_data.query.filter(Organism_data.uid_organism == marine_organism_one.id).all() context = { 'marine_organism_one': marine_organism_one, 'organism_datas': organism_data } return render_template('marine_organism_one.html', **context) 这段代码有类的方法吗
这段代码是 Flask 中的一个视图函数,作用是展示单个海洋生物数据集的页面。它使用了 Marine_organism 和 Organism_data 两个模型,以及 Flask 中的请求对象 request 和模板引擎渲染函数 render_template。
在这段代码中,并没有定义类的方法,只是使用了 Marine_organism 模型中的查询方法 filter 和 first,以及 Organism_data 模型中的查询方法 filter 和 all。这些方法都是 SQLAlchemy 中的查询方法,用于从数据库中获取数据。