传输加密连接池错误



我对编码和Web开发很陌生。 我是一名系统工程师,希望进入Web开发方面。 我参加了一些python教程,并拼凑了一个(可能非常)粗糙的python应用程序。 我现在想把这个应用程序放在我创建的网站上,这样我就可以允许办公室里的其他人也使用该实用程序。

为此,我安装了transcrypt,目的是将python代码转换为javascript。 运行转录时,我得到以下输出:

编译时出错(最后有问题的文件): 文件"c:/Scripting/Transcrypt/Meraki.py",第 1 行,导入时: 文件 'c:/users/dab404/appdata/local/programs/python/python36/lib/site-packages/requests/init.py',第 43 行,导入时: 文件 'c:/users/dab404/appdata/local/programs/python/python36/lib/site-packages/urllib3/init.py',第 8 行,即: 尝试导入模块:连接池 找不到以下任何一项: c:/Scripting/Transcrypt/connectionpool.py c:/Scripting/Transcrypt/javascript/connectionpool.mod.js

该错误继续列出大约 10 个需要运行的其他文件。 我不确定如何解决此问题,并希望任何人能给我任何帮助。

这是我的代码:

import requests
import json
from meraki import meraki
base_url = "https://dashboard.meraki.com/api/v0/"
def List_Orgs(apikey):  #A FUNCTION FOR LISTING ORGANIZATION ADMINS
myOrgs = meraki.myorgaccess(apikey)
for orgs in myOrgs:
print(orgs)
def List_Admins(URL_admin, headers):
x = requests.get(URL_admin, headers = headers)
myAdmins = x.json()
for admins in myAdmins:
print(admins)
def Add_Admin(URL, admin_data, headers):     #FUNCTION FOR ADDING NEW ADMIN 
TO AN ORGANIZATION
r = requests.request("POST", URL, data = admin_data, headers = headers)
print(r.status_code)
if (r.status_code) == 201:
print()
print()
print("Administrator successfully added!")
print()
else:
print()
print("Administrator was NOT successfully added.  Please try again!")
print()
def Del_Admin(URL_del, headers):     #FUNCTION FOR DELETING AN ADMIN FROM AN 
ORGANIZATION
r = requests.request("DELETE", URL_del, headers = headers)
print(r.status_code)
if (r.status_code) == 204:
print()
print()
print("Administrator successfully deleted!")
print()
else:
print()
print("Administrator was NOT successfully deleted.  Please try again!")
print()
apikey = input("What is your Meraki API key?  ")
print()
print("******************************************")
print()
print("Here is a list of your Organizations.  You will need the ID to answer 
the next set of questions.")
print()
print()
List_Orgs(apikey)

print()
print()
headers = {
'X-Cisco-Meraki-API-Key': apikey,
'Content-Type': "application/json"
}
add_or_del = input("Would you like to add or delete an admin?  ")
if add_or_del == ("add" or "Add" or "ADD"):
orgid = input("Which Organization would you like to add an admin to?  ")
admin_name = input("What is the new Admin's First and Last name?  ")
admin_email = input("What is " + admin_name + "'s email address?  ")
admin_access = input("What level of access would you like " + admin_name + 
" to have? (full or read-only) ") 
admin_data = '{nt"name":"' + admin_name + '",nt"email":"' + 
admin_email + '",nt"orgAccess":"' + admin_access + '"}'
URL = (base_url + 'organizations/' + orgid + '/admins')
Add_Admin(URL, admin_data, headers)
elif add_or_del == ("delete" or "Delete" or "DELETE"):
orgid = input("Which Organization would you like to delete an admin from?  
")
URL_admin = (base_url + 'organizations/' + orgid + '/admins/')
print()
print("Here is a list of Admins in this Organization.  You will need to 
admin ID to answer the next question.")
print()
print()
List_Admins(URL_admin, headers)
print()
print()
adminid = input ("What is the admin's Meraki portal ID?  ")
URL_del = (base_url + 'organizations/' + orgid + '/admins/' + adminid)
Del_Admin(URL_del, headers)
else:
print("Please type add or delete and try again.")'

谢谢! 大卫

问题出在导入上:

import requests
import json
from meraki import meraki

requests这样的模块是Transcrypt不支持的标准Python模块,因为它使用用C编写的代码,而不是在浏览器中运行。

对于json来说,有一个JavaScript对应物可以直接从Transcrypt使用,没有问题。

模块meraki我不知道,所以无法判断。

尽管Transcrypt发行版中提供了越来越多的标准模块,但通常它使用JavaScript模块,因为这些模块专门针对在浏览器中有意义的功能。

例如,浏览器中通常禁止本地文件访问,因此任何使用它的模块都无法完成它的"事情"。

另请参阅:

http://www.transcrypt.org/docs/html/what_why.html#the-ecosystem-different-batteries

所以在Transcrypt中,你用Python编程,但你使用的库主要是JavaScript。例外是非常常见的库,如数学,cmath,随机(部分),时间,日期时间,迭代工具,re等。

要了解如何从Transcrypt使用JavaScript库,请查看:

http://www.transcrypt.org/examples

以及:

http://www.transcrypt.org/docs/html/integration_javascript.html#mixed-examples

[编辑]

我又仔细看了一下您的应用程序,我注意到它是一个典型的控制台应用程序,使用inputprint之类的东西。虽然这些在 Transcrypt 中以有限的方式受支持,但请参阅

http://www.transcrypt.org/docs/html/integration_javascript.html#example-using-input-and-print-in-a-dom-terminal-element-in-your-browser

通常,Web 应用程序的工作方式略有不同。

通常,它们是事件驱动的,这意味着许多 GUI 元素被拼凑在一起,有时在 HTML 中,有时在脚本中。然后,这些 GUI 元素触发事件,进而触发要运行的某些代码段(事件处理程序)。

因此,下一步可能是研究这种工作方式。Transcrypt中一个很好的,简单的例子,HTML/DOM和以这种方式合作的脚本是这样的:

http://www.transcrypt.org/docs/html/installation_use.html#your-first-transcrypt-program

在许多情况下,对于Web应用程序,还会与Web服务器进行交互,因此部分处理是在服务器上完成的。

例如,你可以使用Bottle或Django,如演示

:https://github.com/Michael-F-Ellis/NearlyPurePythonWebAppDemo

相关内容

  • 没有找到相关文章

最新更新