简述:
表单(form)是用户输入信息与网页互动的一种形式。大多数情况下,用户提交的信息会发给服务器,比如网站的搜索栏就是表单。
表单由一种或多种的小部件组成,比如输入框、按钮、单选框或复选框。这些小部件称为控件(controls)。
<form>
标签用来定义一个表单,所有表单内容放到这个容器元素之中。
<form>
<!-- 各种表单控件-->
</form>
环境准备
在要实现form表单提交前,还需要一些准备工作,软件我使用的是phpstudy_pro:
- 首先需要配置一个自己的本地服务器网站,这里我已经完成网站的创建。
- 在phpstudy下载并启动Apache服务;
- 在设置-网络-代理中把的
使用代理服务器
打开,ip地址默认使用127.0.0.1,端口使用8080;
PHP
- 在phpsutdy搭建的网站文件夹中创建一个文件夹
form
;
- 使用Visual Studio Code打开
form
文件夹,创建一个index.html
,编写一个简单的form表单例子;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 页面自适应 ,手机平板,电脑切换上体现-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<label for="">username:</label><input type="text" name="username">
<label for="">password:</label><input type="password" name="password">
<input type="submit" value="submit">
</form>
</body>
</html>
- 在浏览器打开
index.html
后显示为:
- 在同样养的文件夹下面创建一个login.php文件用以获取输出form表单提交的数据,采用
POST
方式提交。
在html代码修改添加路径和提交方式:
<form action="./login.php" method="post">
编写简单login.php来接收:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo "账号:".$username." "."密码:".$password;
注意:username,password一定要一一对应,不然会出现接收不到问题。
- 使用url,通过
127.0.0.1
来访问index.html
;
输入username,password后提交;
提交后会自动跳转到login.php
,并且输出获取到的数据;
至此php
表单提交完成。
Python
python与php实现的方式大同小异,所以我们在上面创建的form
文件夹中再建一个login.py
文件,通过使用flask
框架来编写代码
Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。
- 代码如下:
from flask import Flask, request
app = Flask(__name__)
@app.route('/login',methods=['GET','POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')
print('username:',username)
return 'login successfull!'
if __name__ == '__main__':
app.run(debug=True)
-
结果可知运行在
5000
端口上;
-
到浏览器查看
5000
端口的运行情况,请求成功,能访问到5000
端口;
-
Shell终端也是在访问
5000
端口时输出:none
,因为没有打印出username
;
-
再使用上面对
index.html
文件进行修改,将action
修改为:
-
再次到网页对表单进行提交:
-
成功执行跳转;
-
终端也是打印出
username
;
至此Python表单提交完成。
补充
在编译py文件时,软件提示flask
模块报错,网上查询后成功解决:
- 最开始是提示
“ModuleNotFoundError: No module named ‘flask._compat’
,这种大概可能是flask
版本太高导致,所以降低flask
版本;
pip3 install flask==1.1.2
- 降低版本后问题还是没有解决,反而提示新的错误
ImportError: cannot import name ‘json‘ from ‘itsdangerous‘
,这时候原因大概又变成了flask
版本太低,所以由需要重新安装高版本的flask
;
pip install flask==2.0.2
然后就能成功运行了。