需要用python编写简单的表单数据收集工具以供本地使用

需要用python编写简单的表单数据收集工具以供本地使用,python,forms,csv,Python,Forms,Csv,我需要编写一个简单的python应用程序,用于通过表单收集数据。表单本身只需要 一些用于名称和地址的文本字段, 日期字段 和一个choosebox/下拉字段。 应用程序将在本地运行,数据应保存在本地普通csv文件中。不需要联网 我发现有很多不同的方法来解决这个问题: 命令行应用程序, 带有tkinter/qt的gui应用程序, 微框架,如烧瓶或瓶子, 像django这样的大型框架。 当然,肯定有一些方法我还没有找到。主要关注点是简单性,我需要一个指向正确方向的指针:如何实现这一点,例如,即使没有

我需要编写一个简单的python应用程序,用于通过表单收集数据。表单本身只需要

一些用于名称和地址的文本字段, 日期字段 和一个choosebox/下拉字段。 应用程序将在本地运行,数据应保存在本地普通csv文件中。不需要联网

我发现有很多不同的方法来解决这个问题:

命令行应用程序, 带有tkinter/qt的gui应用程序, 微框架,如烧瓶或瓶子, 像django这样的大型框架。 当然,肯定有一些方法我还没有找到。主要关注点是简单性,我需要一个指向正确方向的指针:如何实现这一点,例如,即使没有经验的开发人员也可以在以后添加或更改字段?

应该作为一个简单的独立表单生成器来完成这项工作

有关创建您描述的表单的示例,请参见。

应该作为一个简单的独立表单生成器来完成此任务


有关创建您描述的表单的示例,请参见。

我能想到的最简单的表单将其另存为桌面上的index.html,然后在浏览器中打开:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myfirstform" name='hello'>
    <div>
        <label for="name">Name:</label>
        <input type="text" id="name" name="user_name" />
    </div>
    <div>
        <label for="mail">E-mail:</label>
        <input type="email" id="mail" name="user_mail" />
    </div>
    <div>
        <label for="msg">Message:</label>
        <textarea id="msg" name="user_message"></textarea>
    </div>
    <div>
    <select id="some_dropdown1" name="some_dropdown">
        <option value="" disabled="disabled" selected="selected" >Please select a name</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    </div>
</form>

<input type='button' value='Submit form' onclick='submitDetailsForm()' />

<script>
    function submitDetailsForm() {
      var f = $("#myfirstform").serialize();
      fetch('http://localhost:8080/?'+ f)
        .then(r=> r.json())
        .then(j=> {
            console.log(j)
        })
    }
</script>
我的意思是,这很简单,一个python内置,jquery基本上是一个internet内置

来自服务器的响应的输入用法示例:

来自服务器的输出示例:

有关更高级的用法,请考虑:

    def do_POST(self):
        # Doesn't do anything with posted data
        self._set_headers()
        content_len = int(self.headers.getheader('content-length', 0))
        post_body = self.rfile.read(content_len)
        self.wfile.write("received post request:<br>{}".format(post_body))

    def do_PUT(self):
        self.do_POST()
我一直在思考如何写入csv/tsv文件

了解如何编写一个基本路由器,使您能够创建将数据发送回页面的端点,以便填充下拉菜单

do_GET中的一些if/else语句应该足够了

一旦你达到了极限,我更愿意以此为起点,开始学习意大利面条是如何制作的,然后开始使用烧瓶或类似cherrypy的东西


goodluck

我能想到的最简单的形式是在桌面上将其另存为index.html,然后在浏览器中打开它:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myfirstform" name='hello'>
    <div>
        <label for="name">Name:</label>
        <input type="text" id="name" name="user_name" />
    </div>
    <div>
        <label for="mail">E-mail:</label>
        <input type="email" id="mail" name="user_mail" />
    </div>
    <div>
        <label for="msg">Message:</label>
        <textarea id="msg" name="user_message"></textarea>
    </div>
    <div>
    <select id="some_dropdown1" name="some_dropdown">
        <option value="" disabled="disabled" selected="selected" >Please select a name</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    </div>
</form>

<input type='button' value='Submit form' onclick='submitDetailsForm()' />

<script>
    function submitDetailsForm() {
      var f = $("#myfirstform").serialize();
      fetch('http://localhost:8080/?'+ f)
        .then(r=> r.json())
        .then(j=> {
            console.log(j)
        })
    }
</script>
我的意思是,这很简单,一个python内置,jquery基本上是一个internet内置

来自服务器的响应的输入用法示例:

来自服务器的输出示例:

有关更高级的用法,请考虑:

    def do_POST(self):
        # Doesn't do anything with posted data
        self._set_headers()
        content_len = int(self.headers.getheader('content-length', 0))
        post_body = self.rfile.read(content_len)
        self.wfile.write("received post request:<br>{}".format(post_body))

    def do_PUT(self):
        self.do_POST()
我一直在思考如何写入csv/tsv文件

了解如何编写一个基本路由器,使您能够创建将数据发送回页面的端点,以便填充下拉菜单

do_GET中的一些if/else语句应该足够了

一旦你达到了极限,我更愿意以此为起点,开始学习意大利面条是如何制作的,然后开始使用烧瓶或类似cherrypy的东西


好运

社交是件坏事吗?你考虑过谷歌表单吗?我知道谷歌表单,我个人也喜欢联网,但出于数据保护的原因,这里的要求是在本地收集、处理和存储数据。尽管我不愿意这么说,但如果简单是目标,就使用电子表格程序。创建一个两页的电子表格。1页用于数据输入,第2页用于单元格内下拉参考。要知道,在超过5-10人这样做之后,它是不可伸缩的。绝对最简单的程序是使用输入/原始输入的命令行应用程序,但它不会很漂亮。您尝试过这个吗?您是对的,这可以说是最简单的实现!但就可用性而言,这里可能有点初级。在提交整个记录之前,用户至少应该能够在字段之间切换并更改输入。联网是件坏事吗?你考虑过谷歌表单吗?我知道谷歌表单,我个人也喜欢联网,但出于数据保护的原因,这里的要求是在本地收集、处理和存储数据。尽管我不愿意这么说,但如果简单是目标,就使用电子表格程序。创建一个两页的电子表格。1页用于数据输入,第2页用于单元格内下拉参考。要知道,在超过5-10人这样做之后,它是不可伸缩的。绝对最简单的程序是使用输入/原始输入的命令行应用程序,但它不会很漂亮。您尝试过这个吗?您是对的,这可以说是最简单的实现!但就可用性而言,这里可能有点初级。在提交整个记录之前,用户至少应该能够在字段之间切换并更改其输入。