Python 在Angular中共享从.py到.html的变量

Python 在Angular中共享从.py到.html的变量,python,angular,flask,web-scraping,Python,Angular,Flask,Web Scraping,因此,我正在为我的公司开发一个带有angular和Spring 5的Web应用程序,用于基准项目应用程序。在这个webapp主页中,有一个“最新消息”组件,我想在其中显示项目官方网站的链接 我能够通过添加到项目文件夹中的python文件获得这些链接。我将这些链接存储在一个列表中。 现在,我不知道如何在我的html文件中获取此列表,以便在我的网站中显示它 如果你有什么建议,或者你认为有更好的方法,请告诉我 以下是我的Python代码: > from flask import Flask, r

因此,我正在为我的公司开发一个带有angular和Spring 5的Web应用程序,用于基准项目应用程序。在这个webapp主页中,有一个“最新消息”组件,我想在其中显示项目官方网站的链接

我能够通过添加到项目文件夹中的python文件获得这些链接。我将这些链接存储在一个列表中。 现在,我不知道如何在我的html文件中获取此列表,以便在我的网站中显示它

如果你有什么建议,或者你认为有更好的方法,请告诉我

以下是我的Python代码:

> from flask import Flask, render_template from bs4 import BeautifulSoup
> import requests
> 
> source = requests.get('http://eurobench2020.eu/').text soup =
> BeautifulSoup(source, 'lxml') news =
> soup.find(id="recent-posts-3").select('a')
> 
> oui = [] i = 0 for link in news:
>     oui.append(link.get('href'))
>     print(i)
>     print(link.get('href'))
>     i = i+1 print(oui)
> 
> app = Flask(__name__) @app.route('/')
> 
> def index():
>     return render_template('index.html', oui = oui) app.run(debug=True)

我想在我的html中显示“oui”列表

如果您想将数据直接放入模板中,您基本上有正确的想法:

您有一个
app.py
文件和一个带有
index.html
模板的
templates
目录

├── app.py
├── templates
    └── index.html
对于您的
app.py

从烧瓶导入烧瓶,渲染\u模板
从bs4导入BeautifulSoup
导入请求
source=请求。get('http://eurobench2020.eu/)。文本
汤=BeautifulSoup(来源“lxml”)
news=soup.find(id=“recent-posts-3”)。选择('a')
oui=[]
有关新闻中的链接:
oui.append(link.get('href'))
app=烧瓶(名称)
@应用程序路径(“/”)
def index():
返回render_模板('index.html',data=dict(oui=oui))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(debug=True)
对于您的
index.html


你好,世界!
这是你的数据

    {data.oui%中链接的%s}
  • {%endfor%}
不过,正如其他人提到的,如果您想将其用于Angular或其他具有自己模板的web框架,而不想使用Python和Jinja2进行模板,则应该使用API将数据作为资源公开。在这种情况下,您需要pip安装flask restful并将
app.py
更改为如下内容:

从flask导入flask、jsonify、render_模板
从LASKU restful导入Api,资源
从bs4导入BeautifulSoup
导入请求
source=请求。get('http://eurobench2020.eu/)。文本
汤=BeautifulSoup(来源“lxml”)
news=soup.find(id=“recent-posts-3”)。选择('a')
oui=[]
有关新闻中的链接:
oui.append(link.get('href'))
app=烧瓶(名称)
api=api(应用程序)
OuiData类(资源):
def get(自我):
返回jsonify(oui)
@应用程序路径(“/”)
def index():
返回render_模板('index.html',data=dict(oui=oui))
api.add_资源(OuiData,“/api/oui”)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(debug=True)
然后,您可以按如下方式获取角度服务中的数据:

getOuiData():可观察{
返回此.http.get('http://localhost:5000/api/oui');
}
getOuiData().subscribe(x=>{console.log(x);})

您能发布您目前编写的代码吗?如果您这样做,我们将能够更好地帮助您。尝试在不同的编程框架之间共享变量是非常不切实际的。我认为对您来说,最实际的解决方案是修改您的python脚本,以编写列表的内容,其中包含指向JSON文件的链接;将该文件存储在web应用程序可以访问的位置;然后让你的webapp从JSON文件加载链接@YogeshSudheerModak@Danoram我在互联网上发现了一篇文章,它管理python和html之间的共享,但只使用一个index.html,存储在“模板”中folderI对Flask框架一无所知,但我已将其添加为标签,希望更多人能看到您的问题并帮助您找到答案。