當前位置:首頁 » 雲伺服器 » python如何向伺服器提交數據

python如何向伺服器提交數據

發布時間: 2023-01-27 16:02:41

『壹』 python的文件上傳

Python中使用GET方法實現上傳文件,下面就是用Get上傳文件的例子,client用來發Get請求,server用來收請求。

請求端代碼:

importrequests#需要安裝requests
withopen('test.txt','rb')asf:
requests.get('http://伺服器IP地址:埠',data=f)

服務端代碼:

varhttp=require('http');
varfs=require('fs');
varserver=http.createServer(function(req,res){
//console.log(req);
varrecData="";
req.on('data',function(data){
recData+=data;
})
req.on('end',function(data){
recData+=data;
fs.writeFile('recData.txt',recData,function(err){
console.log('filereceived');
})
})
res.end('hello');
})
server.listen(埠);

『貳』 怎麼用http上傳一個文件到伺服器 python

首先,標准HTTP協議對上傳文件等表單的定義在這里:wwwietforg/rfc/rfc1867txt 大概數據包格式如下:

單文件:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="field1"

Joe Blow
--AaB03x
content-disposition: form-data; name="pics"; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--AaB03x--
多文件:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="field1"

Joe Blow
--AaB03x
content-disposition: form-data; name="pics"
Content-type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-disposition: attachment; filename="file1.txt"
其次,python上傳文件的幾種方法:

1 自己封裝HTTP的POST數據包:http//stackoverflowcom/questions/680305/using-multipartposthandler-to-post-form-data-with-python

import httplibimport mimetypesdef post_multipart(host, selector, fields, files): content_type, body = encode_multipart_formdata(fields, files) h = httplib.HTTP(host) h.putrequest('POST', selector) h.putheader('content-type', content_type) h.putheader('content-length', str(len(body))) h.endheaders() h.send(body) errcode, errmsg, headers = h.getreply() return h.file.read() def encode_multipart_formdata(fields, files): LIMIT = '----------lImIt_of_THE_fIle_eW_$' CRLF = '\r\n' L = [] for (key, value) in fields: L.append('--' + LIMIT) L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(value) for (key, filename, value) in files:

『叄』 如何把python代碼上傳到伺服器上

使用pip或easy_install可以管理和安裝python的package包,實際上它們都是從pypi伺服器中搜索和下載package的。目前在pypi伺服器上,有超過三萬多個package,同時還允許我們將自己的代碼也上傳發布到伺服器上。這樣,世界上的所有人都能使用pip或easy_install來下載使用我們的代碼了。
具體步驟如下:
首先創建項目文件和setup文件。
目錄文件結構如下:
project/
simpletest/
__init__.py
test.py
setup.py
假設項目文件只有一個simpletest包,裡面有一個test.py文件。
創建的setup.py文件格式大致如下,其中,install_requires欄位可以列出依賴的包信息,用戶使用pip或easy_install安裝時會自動下載依賴的包。詳細的格式參考文檔。
from setuptools import setup, find_packages
setup(
name = 'simpletest',
version = '0.0.1',
keywords = ('simple', 'test'),
description = 'just a simple test',
license = 'MIT License',
install_requires = ['simplejson>=1.1'],
author = 'yjx',
author_email = '[email protected]',

packages = find_packages(),
platforms = 'any',
)
然後將代碼打包。
打包只需要執行python
setup.py xxx命令即可,其中xxx是打包格式的選項,如下:
# 以下所有生成文件將在當前路徑下 dist 目錄中
python setup.py bdist_egg # 生成easy_install支持的格式
python setup.py sdist # 生成pip支持的格式,下文以此為例
發布到pypi。
發布到pypi首先需要注冊一個賬號,然後進行如下兩步:
注冊package。輸入python setup.py register。
上傳文件。輸入python setup.py sdist upload。
安裝測試
上傳成功後,就可以使用pip來下載安裝了。
另外,pypi還有一個測試伺服器,可以在這個測試伺服器上做測試,測試的時候需要給命令指定額外的"-r"或"-i"選項,如python
setup.py register -r "",python
setup.py sdist upload -r "",pip
install -i "" simpletest。
發布到測試伺服器的時候,建議在linux或cygwin中發布,如果是在windows中,參考文檔,需要生成.pypirc文件

『肆』 python總結-post請求

一個現象:
很多情況下,我們需要登陸賬號,才能爬取更多的信息。
而我們想要登陸的話,則需要帶上 cookies。

以 https://wordpress-e-3autumn.localprod.oc.forchange.cn/wp-login.php](https://wordpress-e-3autumn.localprod.oc.forchange.cn/wp-login.php) 作為爬蟲範例吧。
賬號:spiderman,密碼:crawler334566

這里又來了一個post請求?

(1)post和get都可以帶著參數請求,不過get請求的參數會在url上顯示出來。
(2)post請求的參數就不會直接顯示,而是隱藏起來。像賬號密碼這種私密的信息,就應該用post的請求。
(3)get請求會應用於獲取網頁數據,比如我們之前學的requests.get()。post請求則應用於向網頁提交數據,比如提交表單類型數據(像賬號密碼就是網頁表單的數據)。

【requests headers】存儲的是瀏覽器的請求信息,【response headers】存儲的是伺服器的響應信息。我們要找的cookies就在其中。
【response headers】里有set cookies的參數。set cookies是什麼意思?就是伺服器往瀏覽器寫入了cookies。
明天接著寫cookies吧,難的地方分多步完成!

『伍』 如何用python腳本提交JS的表單

如果是要提交表單內容給 伺服器的 python 處理,那麼只需要在表單 <form> 裡面的 action 填寫服務端的處理路由就可以了。或者用 <a> 指向伺服器路由get querystring。前端方面不需要python啊。
前端的提交交互動作,都是由 javascript 處理就可以了
遠程登錄ssh之後,那個web頁面可以通過url訪問還是伺服器上可以直接讀取的文件?
如果是前者,就等於python爬蟲了,使用 uillib urllib2訪問 web頁面的 url 得到響應,然後解析,再使用剛才兩個標准模塊裡面的.大概事例代碼:
import urllib, urllib2
res = urllib2.urlopen("http://your.web.com")
html = res.read()
# 解析 html ,讀取 你要提交的內容

# 提交到新的連接
# get
params = urllib.urlencode({'programe': 'python', 'age': 12})
f = urllib.urlopen("http://your.web.com?%s" % params)
# post
params = urllib.urlencode({'programe': 'python', 'age': 12})
f = urllib.urlopen("http://your.web.com", params)

直接讀取伺服器上的web文件內容解析提交的內容,後面的過程也是一樣。
另外,python 有個 requests 的庫,封裝得更好,使用方便

『陸』 Python Http 請求

如果要進行客戶端和伺服器端之間的消息傳遞,我們可以使用HTTP協議請求

通過URL網址傳遞信息,可以直接在URL中寫上要傳遞的信息,也可以由表單進行傳遞(表單中的信息會自動轉化為URL地址中的數據,通過URL地址傳遞)

備註:已經取得資源,並將資源添加到響應中的消息體

可以向伺服器提交數據,是一種比較安全的數據傳遞方式,比如在登錄時,經常使用 POST 請求發送數據

請求伺服器存儲一個資源,通常需要制定存儲的位置

請求伺服器刪除一個資源

請求獲取對應的 HTTP 報頭信息

可以獲得當前URL所支持的請求類型

狀態碼:200 OK
表明請求已經成功. 默認情況下成功的請求將會被緩存

不同請求方式對於請求成功的意義如下:
GET:已經取得資源,並將資源添加到響應中的消息體.
HEAD:作為消息體的頭部信息
POST:在消息體中描述此次請求的結果

請求成功對於PUT 和 DELETE 來說並不是200 ok 而是 204 所代表的沒有資源 (或者 201 所代表的當一個資源首次被創建成功

以下是常見狀態碼及含義

熱點內容
壓縮包手機打開 發布:2025-05-15 18:37:34 瀏覽:215
安卓取消耳機模式怎麼取消 發布:2025-05-15 18:24:24 瀏覽:58
氣球怎麼解壓視頻 發布:2025-05-15 18:20:00 瀏覽:782
電腦軟體密碼怎麼設置密碼 發布:2025-05-15 18:09:07 瀏覽:107
android應用是否運行 發布:2025-05-15 18:02:40 瀏覽:10
java排序list 發布:2025-05-15 18:02:40 瀏覽:298
net編譯可以在linux上嗎 發布:2025-05-15 18:01:18 瀏覽:533
華為怎麼知道不是安卓 發布:2025-05-15 18:00:32 瀏覽:909
清理華為手機存儲空間不足 發布:2025-05-15 17:54:46 瀏覽:349
java從控制台輸入 發布:2025-05-15 17:47:38 瀏覽:483