python获取post结果_如何使用python从传入的httppost中提取数据

更新

根据你在下面发布的代码,这里有一个有效的答案。在#!/usr/bin/python3

import socketserver

from http.server import BaseHTTPRequestHandler

import time

import threading

def do_something(site_id, first, last, pass1):

print(site_id)

print(first)

print(last)

print(pass1)

#just to illustrate the point and print the variables

class MyHandler(BaseHTTPRequestHandler):

def do_POST(self): # !important to use 'do_POST' with Capital POST

global site_id, first, last, pass1 #those are still undefined at the module level ;) remember this for later

if self.path == '/do_something':

request_headers = self.headers

site_id = request_headers["m_site_name"]

first = request_headers["m_first_name"]

last = request_headers["m_last_name"]

pass1 = request_headers["m_device_name"]

do_something(site_id, first, last, pass1)

self.send_response(200)

self.end_headers() #as of P3.3 this is required

try:

httpd = socketserver.TCPServer(("localhost", 9001), MyHandler)

httpd.serve_forever()

finally:

httpd = socketserver.TCPServer(("localhost", 9001), MyHandler)

httpd.server_close()

跟邮递员打电话

命令行输出是C:\Development\Python\test\venv\Scripts\python.exe C:/Development/Python/test/webserver_old.py

1001

jyoti0

127.0.0.1 - - [19/Nov/2018 21:53:45] "POST /do_something HTTP/1.1" 200 -

jyoti1

101http.server is not recommended for production. It only implements basic security checks.

我相信对于一个小的实现和一些测试或者概念验证来说是可以的,但是最终您需要更好地管理这个问题,也许我可以建议您花一些时间使用Flask,它实际上是一个用于Python API构建和原型设计的非常好而且非常轻的框架。在

-在

上一个答案(上面已弃用并更新)

-

根据对this一个非常简单的引用:

^{pr2}$

更新(不带和API):

假设您在或计算机上运行的自定义端口的URL处有一个自定义尾随部分,那么“纯”python将如下所示:import SocketServer

from BaseHTTPServer import BaseHTTPRequestHandler

def doSomething():

print "i did"

class MyHandler(BaseHTTPRequestHandler):

def do_POST(self):

if self.path == '/doSomething':

mail = self.request.POST.get('email')

something = self.request.POST.get('something')

doSomething()

self.send_response(200)

httpd = SocketServer.TCPServer(("", 8080), MyHandler)

httpd.serve_forever()

我假设这样你可以自由地重用变量。同时检查参考文献here,布伦达的答案。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值