可以使用JavaScript更改现有的Python变量吗?

可以使用JavaScript更改现有的Python变量吗?,javascript,python,Javascript,Python,我用Python编写了一些代码来创建一个网站。我需要一些JavaScript。使用JavaScript,我想更改一个Python变量 在nav下的a标记中,我想使用JavaScript更改变量页面。请使用onclick参数和script标记 我试着找了找,但没有一个符合我的需要。下面是我的代码的基本概要。这不是最好的方法,但我觉得它很有用 from socket import * def create_server(): server_socket = socket(AF_INET,

我用Python编写了一些代码来创建一个网站。我需要一些JavaScript。使用JavaScript,我想更改一个Python变量

nav
下的
a
标记中,我想使用JavaScript更改变量
页面
。请使用
onclick
参数和
script
标记

我试着找了找,但没有一个符合我的需要。下面是我的代码的基本概要。这不是最好的方法,但我觉得它很有用

from socket import *


def create_server():
    server_socket = socket(AF_INET, SOCK_STREAM)
    try:
        server_socket.bind(('localhost', 9000))
        server_socket.listen(5)

        page = 'home'

        while True:
            (client_socket, address) = server_socket.accept()

            rd = client_socket.recv(5000).decode()
            pieces = rd.split('\n')

            if len(pieces) > 0:
                print(pieces[0])

            data = 'HTTP/1.1 200 OK\r\n'
        data += 'Content-Type: text/html; charset=utf-8\r\n\r\n'
        data += '''<html>
                        <head>
                            <style>
                                body {
                                    font-family: "Avenir Next";
                                }
                                
                                a {
                                    text-decoration: none;
                                }
                                
                                nav ul {
                                    list-style-type: none;
                                    margin: 0;
                                    padding: 0;
                                    overflow: hidden;
                                    background-color: #333;
                                    position: sticky;
                                    top: 0;
                                    border-radius: 7px;
                                }
                                
                                nav ul li {
                                    float: left;
                                }
                                
                                nav ul li a {
                                    display: block;
                                    color: white;
                                    text-align: center;
                                    padding: 14px 16px;
                                    text-decoration: none;
                                }
                                
                                nav ul li a:hover {
                                    background-color: #111;
                                }
                                
                                .active {
                                    background-color: #4CAF50;
                                }
                            </style>
                '''

        data += f'''
                            <title>{page.title()} | MySite</title>
                        </head>
                        <body>
                            <nav>
                                <ul>
                                    <li><a {'class="active"' if page == 'home' else ''} href="#" onclick="SOMETHING">Home</a></li>
                                    <li><a {'class="active"' if page == 'about' else ''} href="#" onclick="SOMETHING">About MySite<a></li>
                                    <li style="float:right"><a {'class="active"' if page == 'login' else ''} href="#" onclick="return">Login</a></li>
                                </ul>
                            </nav>
                            <center>
                                <h1>MySite</h1>
                                <h2>Nice Subheading<p>
                            </center>
                        </body>
                    </html>\r\n\r\n'''
            client_socket.sendall(data.encode())
            client_socket.shutdown(SHUT_WR)
    except KeyboardInterrupt:
        print('\nShutting Down...\n')
    except Exception as exc:
        print(f'\n\nError:\n{exc}')

    server_socket.close()


print('Access http://localhost:9000\n\nRequests:')
create_server()
从套接字导入*
def create_server():
服务器\u套接字=套接字(AF\u INET,SOCK\u STREAM)
尝试:
server_socket.bind(('localhost',9000))
服务器\u套接字。侦听(5)
页面='主页'
尽管如此:
(客户端\u套接字,地址)=服务器\u套接字.accept()
rd=client_socket.recv(5000).decode()
碎片=rd.split(“\n”)
如果长度(件数)>0:
打印(件[0])
数据='HTTP/1.1 200正常\r\n'
数据+='内容类型:文本/html;字符集=utf-8\r\n\r\n'
数据+='''
身体{
字体系列:“Avenir Next”;
}
a{
文字装饰:无;
}
导航ul{
列表样式类型:无;
保证金:0;
填充:0;
溢出:隐藏;
背景色:#333;
位置:粘性;
排名:0;
边界半径:7px;
}
李国荣{
浮动:左;
}
海军ulli a{
显示:块;
颜色:白色;
文本对齐:居中;
填充:14px 16px;
文字装饰:无;
}
导航ulli a:悬停{
背景色:#111;
}
.主动{
背景色:#4CAF50;
}
'''
数据+=f''
{page.title()}MySite
麦斯特 漂亮的副标题 \r\n\r\n'' 客户端_socket.sendall(data.encode()) 客户端\u套接字关闭(关闭\u WR) 除键盘中断外: 打印('\n按下…\n') 除作为exc的例外情况外: 打印(f'\n\n错误:\n{exc} 服务器\u套接字。关闭() 打印('访问http://localhost:9000\n\n请求:') 创建_服务器()
不,你不能。唯一的方法是使用一个端点,您可以在该端点向api端点或类似的对象发送http请求

,那么您可以解释一下您的代码实际做了什么,您希望更改哪个变量,以及您在哪里遇到了问题吗?抱歉,这里有太多的上下文需要解释,无法回答您的问题。Python在一个环境中运行(充当服务器),Javascript在另一个环境中运行(在浏览器中,作为客户端)。要使JavaScript影响Python代码,您需要从客户端向服务器发送某种消息。这意味着您需要向服务器发出服务器能够理解的请求(通常是通过DOM调用打开链接、提交表单或使用AJAX的附加HTTP请求)或打开附加连接(例如websocket)。具体应用需要详细信息,而您没有给我们太多信息。我对其进行了更改,这样可能会更容易!我把它说得不那么宽泛了,有可能重新提出这个问题吗?