首页 > 解决方案 > 如何将同一目录中的文件名传递给 python 变量?

问题描述

我正在尝试在 web 服务器中的 BaseHTTPRequestHandler 类的 doGET 方法中传递一个 html 文件。如何将文件名传递给变量以在我的处理程序中访问?

代替

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

form = '''<!DOCTYPE html>
 <title>Message Board</title>
<form method="POST" action="http://localhost:8000/">
<textarea name="message"></textarea>
<br>
<button type="submit">Post it!</button>
</form>
'''

我想做这样的事情:

form = open("Messageboard.html","r")

但是当我尝试在这里读取文件时它不起作用:

def do_GET(self):
    # First, send a 200 OK response.
    self.send_response(200)

    # Then send headers.
    self.send_header('Content-type', 'text/html; charset=utf-8')
    self.end_headers()

    # Then encode and send the form.
    self.wfile.write(form.encode())

标签: python-3.xwebserver

解决方案


我认为您应该详细说明您的问题!您可以发布更多代码吗?

一般来说,GET 请求会 f.ex。接受 URL 参数,如下所示:

http://example.com/getFormName.do?name=Messageboard%2Ehtml

点“。” 在文件名中必须是 URL 编码(见这里:https://www.degraeve.com/reference/urlencoding.php


推荐阅读