【问题标题】:parse a url in python在python中解析一个url
【发布时间】:2018-09-23 14:34:45
【问题描述】:

我想从 db info 创建一个 HTTP 链接。比如ip和端口号,不知何故我试过了,但一直出错,无法解析和端口希望任何人都可以帮助我

 @app.route('/link_test/<string:id>')
 @is_logged_in
 def link_test(id):
     #Create cursor
     cur = mysql.get_db().cursor()
     #get item by itemno
     result = cur.execute("SELECT * FROM testlist WHERE id = %s", [id])
     doc = cur.fetchone()

        )
     doc = {"id": test[0], "rdno": test[1], "ipno": test[2], "port": test[3]}
     cur.close()
     ipno = test['ipno']
     port = test['port']
     url_uptime = 'https://<string:ipno>:<string:port>/stats/uptime/'  

     return render_template('link_test.html', uptime=json.loads(r_uptime))

【问题讨论】:

  • 我认为您会因为随机的) 字符而遇到错误,并且从未定义过test;。而且你没有解析任何东西。看起来您正在尝试格式化 URL

标签: python json parsing url


【解决方案1】:

&lt;string:ipno&gt;:&lt;string:port&gt; 是一个 Flask 路径,不是字面上用作 URL 的东西

如果你想创建这个字符串,它被称为格式化,而不是解析

ipno = doc['ipno']
port = doc['port']
url_uptime = 'https://{}:{}/stats/uptime/'.format(ipno, port)
r_uptime = requests.get(url_uptime, verify=False).content

您还需要在创建 doc 之前的某个位置定义 test

【讨论】:

  • 谢谢老兄:)
  • 如果url down 怎么说value是“down”
  • requests.get 响应移动到它自己的变量中,然后查看它的状态码。如果没问题,则获取内容,否则设置为"down"
  • 如果我使用 status_code 会怎样:如果 url_uptime.status_code == requests.codes.ok: r_uptime = _session.get(url_uptime).content else: r_uptime = "down"
【解决方案2】:

getVars1 = 文档[2]

url='/stats/uptime/' url_uptime = ('https://'+getVars1+url)

非常感谢朋友

【讨论】:

    猜你喜欢
    • 2016-01-17
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2019-09-11
    • 2013-02-26
    相关资源
    最近更新 更多