Python Flask Web 应用程序导航无需刷新页面

2023-12-03

我想开发一个像Google Contacts一样的Flask导航栏。

Sample Picture

当我单击每个导航按钮(如图所示的绿色框)时,我想在红色框内渲染特定的 HTML 页面(如图所示),而不刷新页面。

我已经尝试过使用

{% 扩展“layout.html” %}


正如 @Klaus D. 在评论部分中提到的,您想要实现的目标可以仅使用 Javascript 来完成。也许你的问题是

如何向服务器端发送请求(以获取或获取某些信息)并在客户端接收响应,而无需刷新页面,这与POST方法通常是怎样的?

我将尝试解决上述问题,因为这可能就是您的情况。

一个潜在的解决方案

为此,请使用 Ajax。构建一个函数,将包含某些信息的有效负载发送到服务器,一旦收到响应,您就可以使用该数据动态修改您想要修改的网页部分。

让我们首先为问题构建正确的背景。假设您想按类别过滤一些项目,并让用户决定。这就是 AJAX 的思想,用户可以异步地从服务器发送和检索数据。

HTML(待修改的div)

<div class="row" id="construction-projects"></div>

JavaScript(客户端)

$.post('/search_pill', {
    category: category, // <---- This is the info payload you send to the server.
  }).done(function(data){ // <!--- This is a callback that is being called after the server finished with the request.
    // Here you dynamically change parts of your content, in this case we modify the construction-projects container.
    $('#construction-projects').html(data.result.map(item => `
      <div class="col-md-4">
        <div class="card card-plain card-blog">
            <div class="card-body">
                <h6 class="card-category text-info">${category}</h6>
                <h4 class="card-title">
                  <a href="#pablo">${item.title_intro.substring(0, 40)}...</a>
                </h4>
                <p class="card-description">
                  ${item.description_intro.substring(0, 80)}... <br>
                  <a href="#pablo"> Read More </a>
                </p>
              </div>
        </div>
    </div>
    `))
    
  }).fail(function(){
    console.log('error') // <!---- This is the callback being called if there are Internal Server problems.
  });
}

构建一个函数,通过 ajax 获取当前页面,但不是整个页面,只是从服务器获取有问题的 div。然后,数据将(再次通过 jQuery)放入同一 div 中,并用新内容替换旧内容。

Flask(服务器端)

''' Ajax path for filtering between project Categories. '''
@bp.route('/search_pill', methods=['POST'])
def search_pill():
    category = request.form['category']
    current_page = int(request.form['current_page'])
    
    ## Search in your database and send back the serialized object.

    return jsonify(result = [p.serialize() for p in project_list])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Flask Web 应用程序导航无需刷新页面 的相关文章

随机推荐

  • JTable 与自定义 TableModel

    我正在尝试在 Java GUI 上实现 JTable 它可以用文件中的值填充自身 并允许用户对各种单元格进行修改 由于我在 Netbeans IDE 中使用 GUI 编辑器 因此我的第一反应是从调色板将 JTable 添加到我的表单中 但是
  • Swift 自定义 UITableViewCell 不显示数据

    我是 Swift 和 iOS 开发的新手 我正在尝试创建一个自定义 UITableViewCell 我已经在 UIViewController 内的 UITableView 顶部的主情节提要中创建了单元格 当我加载默认单元格之一时 我能够用
  • Jersey:将所有 POST 数据消耗到一个对象中

    我在我的应用程序中使用 Jersey 1 8 我正在尝试消费POST服务器上的数据 数据的类型是application x www form urlencoded 有没有一种方法可以获取一个对象中的所有数据 也许是Map
  • RSA 我应该使用 X.509 还是 PKCS #1

    使用案例 我有一个用例 其中客户端生成私钥和公钥 并将 Base 64 编码的公钥发送到服务器 在服务器端 我将使用此公钥对消息进行加密 并将加密的消息发送到客户端 客户端使用其私钥对其进行解密 商定的算法是 RSA 问题出在服务器端 我发
  • PHP mail() 附件已损坏

    我一直在努力尝试使用 PHP 发送带有附件的电子邮件 它曾经有效 但消息正文被打乱 现在我的邮件正文可以正常工作 但附件已损坏 我曾经对消息正文使用 Base64 编码 但现在使用 7 位 谁能告诉我我做错了什么 PS请不要告诉我应该使用预
  • 页面刷新后 $stateParams 为 null

    当通过 state go 传递 stateParams 时 当我直接单击链接时 它会正确显示 但在页面刷新或通过另一个窗口打开后会变为 null 我有以下功能 scope urlvalues function url page var re
  • 如何使用Http缓存控制保存firestore请求?

    假设我有一个运行 firebase firestore 数据库的网络 移动应用程序 我的应用程序设置为主要服务动态内容完全存储在 firestore 中 所以我们讨论的是缓存动态内容 例如 如果用户加载页面 A 它将向 firestore
  • python-捕获分子的晶格结构-无法正常工作

    我有这个问题 创建一个程序 构造一 1 维的晶格并 100000 个站点 在这个格子中随机放置一些陷阱 分子 其浓度为 c 随机放置 1 个粒子 放在格子上并让它执行随机游走 在这次行走中 您不会设置时间限制 即您不会声明 具体步数 当粒子
  • 为自定义视图添加圆角

    我对 Android 很陌生 我正在尝试在自定义视图 使用画布 上绘图 我那里有一些线条和矩形 关键是 我现在想要给整个视图提供圆角 但这效果不好 因为我在视图上绘图 而我的绘图位于圆角之上 这些圆角是通过资源添加的 是否可以添加覆盖整个视
  • 在 Cloud Build 步骤中执行 BigQuery 查询

    我正在使用 Cloud Buildgcloud建设者 我覆盖entrypoint to be bq这样我就可以在构建步骤中运行一些 BigQuery SQL 以前 我将 SQL 直接嵌入到 Cloud Build 的 YAML 配置中 这工
  • ACRA 与 android:如何在报告崩溃之前执行代码

    我正在使用 ACRA 和我的 Android 应用程序 我的问题是 当发生崩溃时 如何确保在报告崩溃之前执行一些代码 我的意思是我想在崩溃发生时添加一些自定义变量 以便我知道应用程序处于什么状态 请帮忙 谢谢 按照描述实现您自己的发件人he
  • Sublime Text 3 查找在文件末尾停止

    如果我有一个文本文件 1 foo 2 foo 3 foo 4 foo ctrl f will find the 1 then 2 and after finding 4 it ll say No results 以前只是跳转到1 再次 在我
  • 在Python中使用函数之前应该先定义它吗?

    函数应该在使用之前定义吗 但为什么下面的代码有效 def main dog def dog print This is a dog if name main main 我的意思是dog 是在调用后定义的 这是如何工作的 实际上不是 在调用后
  • BigQuery 有区域限制或其他区域之间有延迟吗?

    我想从 GCE 实例将数据存储在 BigQuery 上 并从不同区域实例查询它 例如 存储来自欧盟实例的数据 查询来自美国实例的数据 这是否可以毫不拖延地实现 我认为将数据复制到其他区域需要一些时间 BigQuery 有区域限制 很少有 像
  • 将字符串转换为小数,保留分数

    我正在尝试转换1200 00 to decimal but Decimal Parse 删除 00 我尝试过一些不同的方法 但它总是删除 00 除非我提供一个不同于 0 的分数 string value 1200 00 Method 1 v
  • Tensorflow 中的 8 位量化错误

    我一直在尝试新的8位量化功能在 TensorFlow 中可用 我可以毫无问题地运行博客文章中给出的示例 googlenet 的量化 并且它对我来说效果很好 现在 我想将同样的方法应用于更简单的网络 因此 我使用了 CIFAR 10 的预训练
  • 为什么Volley DiskBasedCache拼接时不直接获取缓存文件名

    Creates a pseudo unique filename for the specified cache key param key The key to generate a file name for return A pseu
  • SpelEvaluationException 找不到方法

    当我尝试使用 SpEL 将 User 传递给服务方法时 我面临下一个问题 evaluate expression commonService userTest user result flowScope user 春天抛出了以下异常 org
  • 多个 HTTP 授权标头?

    是否可以在 HTTP 消息中包含多个授权标头 具体来说 我想包括一种承载令牌类型 传递 OAuth 访问令牌 和一种基本类型 传递 base64 编码的用户名 密码 GET presence alice HTTP 1 1 Host serv
  • Python Flask Web 应用程序导航无需刷新页面

    我想开发一个像Google Contacts一样的Flask导航栏 当我单击每个导航按钮 如图所示的绿色框 时 我想在红色框内渲染特定的 HTML 页面 如图所示 而不刷新页面 我已经尝试过使用 扩展 layout html 正如 Klau