Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中本地主机上的HTTP删除请求_Python_Http_Python Requests_Http Delete - Fatal编程技术网

python中本地主机上的HTTP删除请求

python中本地主机上的HTTP删除请求,python,http,python-requests,http-delete,Python,Http,Python Requests,Http Delete,我正在尝试在localhost上构建客户端和服务器,并使用python中的请求模块实现get、post和delete http请求 from http.server import HTTPServer, BaseHTTPRequestHandler from urllib.parse import parse_qs names_dict = {'john': 'smith', 'david': 'jones', 'michael': 'j

我正在尝试在localhost上构建客户端和服务器,并使用python中的请求模块实现get、post和delete http请求

from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import parse_qs

names_dict = {'john': 'smith',
              'david': 'jones',
              'michael': 'johnson',
              'chris': 'lee'}


class RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.log_message("Incoming GET request...")
        try:
            name = parse_qs(self.path[2:])['name'][0]
        except:
            self.send_response_to_client(404, 'Incorrect parameters provided')
            self.log_message("Incorrect parameters provided")
            return

    if name in names_dict.keys():
        self.send_response_to_client(200, names_dict[name])
    else:
        self.send_response_to_client(404, 'Name not found')
        self.log_message("Name not found")

def do_POST(self):
    self.log_message('Incoming POST request...')
    data = parse_qs(self.path[2:])
    try:
        names_dict[data['name'][0]] = data['last_name'][0]
        self.send_response_to_client(200, names_dict)
    except KeyError:
        self.send_response_to_client(404, 'Incorrect parameters provided')
        self.log_message("Incorrect parameters provided")

def send_response_to_client(self, status_code, data):
    # Send OK status
    self.send_response(status_code)
    # Send headers
    self.send_header('Content-type', 'text/plain')
    self.end_headers()

    # Send the response
    self.wfile.write(str(data).encode())

server_address = ('127.0.0.1', 8080)
http_server = HTTPServer(server_address, RequestHandler)
http_server.serve_forever()
这是给客户的:

import requests

r = requests.get("http://127.0.0.1:8080/", params={"name":'michael'})
print("Request method: GET, \
    Response status_code: {}, Response data: {}".format(r.status_code, r.text))
r = requests.post("http://127.0.0.1:8080/", params = {'name':'peter', 'last_name':'peterson'})
print("Request method: POST, \
    Response status_code: {}, Response data: {}".format(r.status_code, r.text))
r = requests.delete("http://127.0.0.1:8080/", params={'name':'chris', 'last_name':'lee'})
print("Request method: DELETE, \
    Response status_code: {}, Response data: {}".format(r.status_code, r.text))

我如何在服务器文件中添加代码,根据姓名和姓氏从字典中删除条目,然后像post请求一样在屏幕上打印新字典。

我不知道这是纯粹巧合还是我们是同事。但我在我所学的课程中也有这个任务。删除并向客户端提供我已实现的列表的方法是:

def do_DELETE(self):
    self.log_message('Incoming DELETE request...')

    try:
        name = parse_qs(self.path[2:])['name'][0]  
    except KeyError:
        self.send_response_to_client(404, self.path[2:])
        self.log_message("Incorrect parameters provided")
        return
        
    for key, value in names_dict.items():
        if name in names_dict.keys() or names_dict.values():
        
            if key == name:
                del names_dict[key]
                self.send_response_to_client(200, f'Name found and deleted {names_dict}')
                self.log_message("Name found and deleted")
                break
            elif value == name:
                del names_dict[key]
                self.send_response_to_client(200, f'Last Name found and deleted {names_dict}')
                self.log_message("Last Name found and deleted")
                
                break
    else:
        self.send_response_to_client(404, 'Name does not exist')
        self.log_message("Name does not exist")