【问题标题】:How to easily create a single-page Web Application?如何轻松创建单页 Web 应用程序?
【发布时间】:2020-11-22 17:35:48
【问题描述】:

制作一页Web应用程序的最简单方法是什么,其中将有两个输入文本,其中输入变量a,b和一个用于访问python脚本以在接收到的URL处显示图像的按钮

def get_pic(a,b):
    *magic*
    return *pic url*

我尝试过 Django,但由于我是初学者,我不明白如何将 python 函数调用分配给按钮。也许有尽可能简单的方法,没有不必要的麻烦,我需要一个基本的界面,如附图所示


附:在此之前,我从事在 PyQt 中创建桌面应用程序,并且在那里更容易,您只需在编辑器中拖放必要的按钮、文本块,然后在 Python 中将函数绑定到它们,但使用 Web 应用程序,如我明白了,它不会起作用

【问题讨论】:

  • 按钮是否必须对输入做任何事情?如果是,那么 a、b 和按钮会生成一个表单,然后单击提交表单。您可以访问提交的值并对其进行任何操作。否则,您可以为您的图片网址添加一个锚标记(看起来像一个按钮)<a href="your image"></a>
  • @ItsMilann 感谢您的评论。当我输入 a 和 b 文本输入时,我想按下按钮,然后 python 脚本接受这个 a,b 结束返回页面的图片 url
  • 你能解释一下 a 和 b 与图像有什么关系吗?
  • @ItsMilann 'getpick' 函数采用 a,b 变量,这些变量是数据库的键,并从数据库函数中获取 'url' 字段

标签: python html django web flask


【解决方案1】:

如果您需要简单的示例,如何仅从 2 个输入中获取值,然后将它们发送到这里就可以了..

var btn = document.querySelector('button') ;
var in1 = document.querySelector('#nr1') ;
var in2 = document.querySelector('#nr2') ;
var img = document.querySelector('img') ;
// event on button click
btn.addEventListener( 'click', function() {
  // bails. ..todo, security ?..?
  if( !parseInt(in1.value) || !parseInt(in2.value) ) return;
  // take values from input1 and input2 and replace attribute, browser will do ajax for you and render it
  img.setAttribute( 'src', "https://placehold.it/" + in1.value + "x" + in2.value )
});
.img, .frm{
  float: left; 
  width: 49%;
  padding-left: 1%
}
<div class="img">
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" />
</div>

<div class="frm">
  <input id="nr1"> <p>&nbsp;</p>
  <input id="nr2"> <p>&nbsp;</p>
  <button>Render</button>
</div>

此示例将在两个字段中选择整数并将它们发送到将返回图像的免费后端服务。

您必须将 https://placehold.it/ 替换为您的后端服务 url,并像我一样发送 url 参数之类的 args。您的服务需要返回图像的 url 或我的类型 image/png 等,脚本负责处理安全性、边缘情况、后备图像等。

【讨论】:

  • 感谢您的回答,我的后端通常由一个 backend.py 文件组成,其中包含必要的 def 函数,在您的情况下,我可以直接调用它,将文本字段中的数据发送给它并获取返回 url // PS很抱歉,但是如何在你的 sn-p 中获取图像,需要在文本输入中输入什么?
  • 我不是python,所以请研究如何在.py中运行函数来收集GET参数(我认为你的用例不需要POST)。您是否测试了我发送给您的snippet 并查看了代码?
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 2019-05-10
  • 2011-11-11
  • 2011-04-09
相关资源
最近更新 更多