如何从没有数据库的另一个页面创建用HTML表单更新的页面

How to create a page that updates with a HTML form from another page without a database?

本文关键字:创建 HTML 更新 表单 另一个 数据库      更新时间:2023-09-26

这就是我想要的。我不知道如何编写代码,并且已经阅读了许多其他类似的问题。

我想要的是一个主页面来更新另一个没有数据库和PHP的主页面。这是因为我无法获得这些资源,因为这是我在自己的时间里做的一个副业。

这就是我在脑海中的计划。

表单页面每个标题将有2个单选按钮。它代表Go和Stop。用户可以选择任一单选按钮并提交表格。

显示页面将显示与所选单选按钮相对应的标题和所选图像。当从表单页面提交新的更新时,页面内容发生更改时,也必须对其进行更新。此页面将对多个用户可见,并对所有用户进行更新。

所以我想知道的是,这是否可能,或者我是否必须获得更多的访问权限来开发数据库和运行PHP。

提前谢谢。

当你说"没有数据库,也没有使用php"时,听起来你实际上是指"没有任何服务器端脚本";即,只使用HTML和JavaScript,这样您就可以在后端使用一个简单的静态HTTP文件服务器。

如果一个用户的操作必须影响另一个用户状态(即他们在网页上看到的内容),例如在您描述的场景中,这是不可能的:

  1. 用户A加载主页,并看到图像1
  2. 用户B加载辅助页面,从下拉列表中选择"2",然后提交表单
  3. 用户A重新加载主页,并看到图像2

如果只涉及一个用户,您可以使用javascript cookie或localstorage。您描述的场景要求用户B的操作必须以新状态的形式传达给用户A。每个用户的客户端(浏览器)只知道如何与服务器通信。客户端之间没有直接通信的机制。因此,服务器必须存储状态,并为更改状态提供一个端点。

在我看来,为您描述的需求创建概念验证服务器的最快、最简单的方法是使用python-flask。为了快速演示,您可以避开数据库,只使用全局变量。如果您决定要一个数据库,sqlite3已经包含在标准python安装中。它非常轻便、灵活,非常适合原型设计。


这里有一个完整的python-flask演示服务器,可以完成您想要完成的任务。您可以使用这个来代替常见HTTP服务器的

服务器.py

from flask import Flask, escape, request, render_template
app = Flask(__name__)
image = '1'
@app.route('/')
def main():
    global image
    return render_template('index.html', image=image)
@app.route('/config/', methods=['GET', 'POST'])
def config():
    global image
    if request.method == 'POST':
        image = request.form['image']
    return render_template('config.html', image=image)

templates/index.html

<!doctype html>
<title>Main Page</title>
<img src="/static/{{ image }}.jpg" alt="image" />

templates/config.html

<!doctype html>
<title>Config Page</title>
<form method="POST">
  <input type="radio" name="image" value="1">
  <input type="radio" name="image" value="2">
  <input type="submit" value="save">
</form>

这是完整的目录结构。

├── server.py
├── static
│   ├── 1.jpg
│   └── 2.jpg
└── templates
    ├── config.html
    └── index.html

安装烧瓶:

pip install flask

要运行服务器(从存储server.py的同一目录运行):

FLASK_APP=server.py flask run

查看网页:

http://localhost:5000/
http://localhost:5000/config/