在Python中向服務器提交一個表單數據看起來是很容易的,但是這次經歷著實讓我記憶深刻,借此也為了警醒同樣遇到了這樣問題的你們。
使用Python的urllib2模塊提交表單數據,并在服務器端進行驗證提交的表單結果。
pycharm可以寫java嗎、操作系統
Windows 7 旗艦版
需要的編譯器:
服務器端采用JavaWeb技術創建,使用Servlet來接收表單數據。具體內容如下:
java、首先是index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="GetParameters" method="POST"><br>UserName : <input type="text" name= "username"><br>Password : <input type="password" name = "password"><br><br><input type= "submit" value="Submit"> <input type="reset"></form></body>
</html>
然后是action對應的servlet界面。GetParameters.java
package one;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class GetParameters extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public GetParameters() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());doPost(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stub// doGet(request, response);String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("Username is : " + username);System.out.println("Password is : " + password);response.getOutputStream().write("I have received you request!".getBytes());}}
最后就是web.xml的配置文件(我這里偷了個懶,老是記錯配置,所以就在tomcat的一個sample 下面抄了一個,然后改了改,就成了)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>Test</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>GetParameters</servlet-name><servlet-class>one.GetParameters</servlet-class></servlet><!-- ... --><servlet-mapping><servlet-name>GetParameters</servlet-name><url-pattern>/GetParameters</url-pattern></servlet-mapping></web-app>
額,我姑且稱之謂測試端吧。代碼很簡單,如下:
# coding:UTF-8
import sys,urllib,urllib2def CommonWay():url = 'http://localhost:8080/Test/GetParameters'params = {'username':'Username','password':'Password'}data = urllib.urlencode(params)req = urllib2.Request(url,data)response = urllib2.urlopen(req)content = response.read()print contentCommonWay()
print "Succeed!"
Python控制臺的輸出結果是這樣的
D:\Software\Python2\python.exe E:/Code/Python/GetWeather/ulib2/SubmitData.py
I have received you request!
Succeed!Process finished with exit code 0
但其實最重要的就是服務器端的處理結果了。
我們可以在Eclipse的控制臺清楚的看到我們提交的表單數據。至于要對這些數據做什么樣的操作,就不是今天要講的內容了。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态