如何从下一个代码的html页面上的flask中的python代码中获取数据
我试图通过Flask从HTML页面上的“byp”和“yp1”获取数据,但我做不到 以及我想打印在html页面都打印内容 我试图定义一个新的路由页面,并通过使用像{{byp}和{{{yp1}}这样的Jinja命令导入,但并没有起作用。我在该领域是新手,我确信之前有一些事情要做 代码100%有效 谁能给我一个提示吗如何从下一个代码的html页面上的flask中的python代码中获取数据,python,html,flask,jinja2,bitcoin,Python,Html,Flask,Jinja2,Bitcoin,我试图通过Flask从HTML页面上的“byp”和“yp1”获取数据,但我做不到 以及我想打印在html页面都打印内容 我试图定义一个新的路由页面,并通过使用像{{byp}和{{{yp1}}这样的Jinja命令导入,但并没有起作用。我在该领域是新手,我确信之前有一些事情要做 代码100%有效 谁能给我一个提示吗 import requests, json import datetime import time @app.route('/bpay/' + token_ur
import requests, json
import datetime
import time
@app.route('/bpay/' + token_urlsafe(12))
def getBitcoinPrice():
URL = 'https://www.bitstamp.net/api/ticker/'
try:
r = requests.get(URL)
priceFloat = float(json.loads(r.text)['last'])
bp = getBitcoinPrice()
yp = 12
byp = yp / bp
yp1 = bp * byp
btc = '1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX'
return render_template('a/bpay.html', byp=byp, yp1=yp1, bp=bp)
except requests.ConnectionError:
print ('Error querying Bitstamp API')
因此,我尝试了以下代码:
URL = os.popen("GET https://www.bitstamp.net/api/ticker/").read()
for last in URL:
r = requests.get(URL)
pf = float(json.loads(r.text)['last'])
bp = pf
yp = 12
byp = yp / bp
yp1 = bp * byp
我得到了这个错误:
Traceback (most recent call last):
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/flask_login/utils.py", line 228, in decorated_view
return func(*args, **kwargs)
File "/home/ubuntu/workspace/n1/app.py", line 1480, in btpay
r = requests.get(URL)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/sessions.py", line 612, in send
adapter = self.get_adapter(url=request.url)
File "/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/sessions.py", line 703, in get_adapter
raise InvalidSchema("No connection adapters were found for '%s'" % url)
requests.exceptions.InvalidSchema: No connection adapters were found for '{"high": "8160.85000000", "last": "8099.47", "timestamp": "1523975088", "bid": "8093.02", "vwap": "8062.56", "volume": "7016.85906762", "low": "7938.78000000", "ask": "8099.47", "open": 8054.68}'
过去几个月我一直在练习烧瓶。我希望这能对你有所帮助。我试着让它简单易懂,因为你是新手 使用render_template将路由功能与html模板连接(确保html模板位于templates目录中 后端 在Jinja模板中,打印来自后端的变量
谢谢,但我喜欢这样,但它不起作用:(@alex用您尝试过的代码更新问题。在您这样做之前,我们无法知道什么不起作用。@BhushanBabar的想法是,我正在尝试Masud Rumir在其示例中的做法,但不起作用。数据没有出现,更甚者,没有错误……请检查python代码中的正确缩进。我的代码中的缩进可能不正确示例代码。应该可以使用。@alex的示例没有经过您的修改就可以使用了吗?您好,您可以使用吗?@BhushanBabar没有使用,我不知道如何使用,或者缺少了一些内容。我在互联网上找到了很多与json相关的资料,在我的水平上,这些资料现在不容易理解:(.我正在寻找一种替代方法来添加价值观手册,而不是更新它们,这对我很有帮助,但不是我所期望的……也许我想的比我的知识还多。。。
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/test')
def test():
text = 'Hello World'
return render_template('test.html', text=text)
if __name__ == '__main__':
app.jinja_env.auto_reload = True
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.debug = True
app.run(host='0.0.0.0', port=5000)
{{ text }}