有没有办法使用folium map弹出URL调用flask函数?

2024-05-23 23:29:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过folium在heroku上生成了一个带有弹出URL的地图,并使用python/Flask进行了部署: map

以下是主python文件中函数的代码。函数获取变量store-name,webscrapes其谷歌搜索结果并返回一个页面,该页面重定向到此商店的yelp评论

from flask import Flask,render_template
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

@app.route('/myProj/<store-name>')
def yelp(store-name):
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options)
    link=''
    name=''
    for x in store-name.split(' '):
        link+=('+'+x)
        name+=(x+' ')
    driver.get("https://www.google.com/search?q=yelp+%s"%link)
    raw=str(driver.page_source)
    raw=raw.split('\"')
    raw=[x for x in raw if len(x)<50 and 'www.yelp.com/biz/' in x]
    if len(raw)>0:
        res=raw[0]
    else:
        return render_template("myProj-redirect2.html")
    return render_template("myProj-redirect.html",link=res,name=name)

理想情况下,当用户单击某个商店的链接时,网站应该将他们引导到该特定商店的yelp搜索页面,我想知道是否可以使用弹出url调用上面的yelp()函数来实现这一点。我尝试在弹出URL中硬连接服务器地址,但不起作用:

import folium

    html = """
<p>%s</p>
    <a href="http://AnDT.herokuapp.com/myProj/%s" target="_blank">\n%s</a>
    """
      for lk, lt, ln, store-name,s in zip(links, lat, lon, names,states):
         iframe = folium.IFrame(html=html %(store-name,'find out more'), width=200, height=100)
         fg_l[s].add_child(folium.Marker(location=[lt, ln], popup=folium.Popup(iframe), icon = folium.Icon(icon='star',color = "black")))

提前感谢您的任何建议或任何其他想法


Tags: store函数nameinfromimportrawhtml