我有点乱用比特币.当我想获得有关本地比特币安装的一些信息时,我只是运行bitcoin getinfo
,我得到这样的东西:
{
"version" : 90100,
"protocolversion" : 70002,
"walletversion" : 60000,
"balance" : 0.00767000,
"blocks" : 306984,
"timeoffset" : 0,
"connections" : 61,
"proxy" : "",
"difficulty" : 13462580114.52533913,
"testnet" : false,
"keypoololdest" : 1394108331,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"errors" : ""
}
Run Code Online (Sandbox Code Playgroud)
我现在想要在Python内部进行此调用(在任何人指出之前;我知道有比特币的Python实现,我只是想学习自己做).所以我首先尝试执行这样一个简单的ls
命令:
import subprocess
process = subprocess.Popen('ls', stdout=subprocess.PIPE)
output = process.communicate()[0]
print output
Run Code Online (Sandbox Code Playgroud)
这工作正常,按预期打印出文件和文件夹列表.那么我这样做了:
import subprocess
process = subprocess.Popen('bitcoin getinfo', stdout=subprocess.PIPE)
output = process.communicate()[0]
print output
Run Code Online (Sandbox Code Playgroud)
但是这会产生以下错误:
Traceback (most …
Run Code Online (Sandbox Code Playgroud) 我正在使用Flask及其jinja2模板引擎构建一个网站,我正在动态构建菜单(如此处所述):
{%
set navigation_bar = [
('/', 'index', 'Home'),
('/aboutus/', 'aboutus', 'About Us'),
('/faq/', 'faq', 'FAQ')
]
%}
{% set active_page = active_page|default('index') -%}
<ul>
{% for href, id, title in navigation_bar %}
<li{% if id == active_page %} class="active"{% endif %}>
<a href="{{ href|e }}">{{ title|e }}</a>
</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
现在,如果用户已登录,我想展示一些其他内容.所以在运行时我想将项添加到navigation_bar变量.我试过这样的事情:
{% if g.user.is_authenticated() %}
{% navigation_bar.append(('/someotherpage', 'someotherpage', 'SomeOtherPage')) -%}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,这会导致以下错误: TemplateSyntaxError: Encountered unknown tag 'navigation_bar'. Jinja was …
我有几个字符串,我想从中得到日期时间.它们的格式如下:
Thu 2nd May 2013 19:00
Run Code Online (Sandbox Code Playgroud)
我几乎知道如何将其转换为日期时间,除了我遇到"2 nd "的问题.我现在有以下内容
>>> datetime.strptime('Thu 02 May 2013 19:00', '%a %d %B %Y %H:%M')
datetime.datetime(2013, 5, 2, 19, 0)
Run Code Online (Sandbox Code Playgroud)
这个月的日期工作正常,零填充数字,但是当我尝试时2nd
,它会产生一个ValueError:
>>> datetime.strptime('Thu 2nd May 2013 19:00', '%a %d %B %Y %H:%M')
Traceback (most recent call last):
File "<input>", line 1, in <module>
(data_string, format))
ValueError: time data 'Thu 2nd May 2013 19:00' does not match format '%a %d %B %Y %H:%M'
Run Code Online (Sandbox Code Playgroud)
在datetime指令列表中,我找不到与日期的有序值(第1,第2,第3等)相关的任何内容.有谁知道我怎么能让这个工作?欢迎所有提示!
我使用(出色的)Flask框架构建了一个网站,现在我想在其中显示一些数字。jinja2提供的舍入过滤器可以正常工作,除非没有十进制值:
{{ 1.55555|round(2) }} -> 1.56
{{ 1.5|round(2) }} -> 1.5
{{ 1.0|round(2) }} -> 1.0
{{ 1|round(2) }} -> 1.0
Run Code Online (Sandbox Code Playgroud)
但我希望最后两个显示像1
(没有尾随.0
)。有人知道我可以使用jinja2吗?欢迎所有提示!
[编辑]
我尝试使用trim(),但令我惊讶的是,以下代码段给出了TypeError: do_trim() takes exactly 1 argument (2 given)
:
{{ 1.0|round(2)|trim('.0') }}
Run Code Online (Sandbox Code Playgroud) 我正在使用Flask建立一个网站,现在我正在其中尝试使用Flask_Security进行基于令牌的身份验证。现在,我想从用户那里获取auth_token,为此我使用了get_auth_token()方法。不幸的是,我在此消息下方得到了堆栈跟踪。
有人知道怎么了吗?欢迎所有提示!
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为使用 Flask 的应用程序构建基于令牌的后端(API),其中我正在尝试使用Flask_Security。由于我使用的是Peewee ORM,我已经按照本指南构建了基本设置,现在我必须构建应该登录用户的视图,然后构建一个实际提供一些有用数据的视图。
所以我返回令牌的登录视图如下所示:
@app.route('/api/login', methods=['POST'])
def api_login():
requestJson = request.get_json(force=True)
user = User.select().where(User.username == requestJson['username']).where(User.password == requestJson['password']).first()
if user:
return jsonify({'token': user.get_auth_token()})
else:
return jsonify({'error': 'LoginError'})
Run Code Online (Sandbox Code Playgroud)
这很好用;我得到一个令牌作为回应。我现在想保护另一个视图auth_token_required
,我想使用令牌作为标题。所以我尝试如下:
@app.route('/api/really-important-info')
@auth_token_required('SECURITY_TOKEN_AUTHENTICATION_HEADER')
def api_important_info():
return jsonify({'info': 'really important'})
Run Code Online (Sandbox Code Playgroud)
但是启动 Flask 会导致AttributeError: 'str' object has no attribute '__module__'
. 该文档对其使用也不是很有帮助。
有谁知道我怎样才能让它发挥作用?欢迎任何提示!
我正在使用Flask构建一个系统,它包含一个应用程序的网站和api.我为webview定义了一个before_request,如下所示:
@app.before_request
def before_request():
g.user = current_user
# And I do some more stuff here..
Run Code Online (Sandbox Code Playgroud)
我在基于文件夹的结构中得到了我的观点,如下所示:
views (folder)
---------------
- __init__.py
- apiviews.py
- webviews.py
Run Code Online (Sandbox Code Playgroud)
因为我正在为api使用基于令牌的登录系统,我现在想要为所有apiviews定义不同的before_request.有没有办法可以做到这一点?也许我需要定义装饰器或什么?欢迎所有提示!
我正在使用Flask构建一个网站,我将MongoDB与MongoEngine ORM一起使用.为了重新开始,我现在升级了我的ubuntu 14.04开发机器上的所有apt和pip包.不幸的是,这破坏了我与MongoDB的联系:
Traceback (most recent call last):
File "./run.py", line 4, in <module>
from app import app, socketio
File "/home/kr65/beta/app/__init__.py", line 21, in <module>
mongoDb = MongoEngine(app)
File "/usr/local/lib/python2.7/dist-packages/flask_mongoengine/__init__.py", line 33, in __init__
self.init_app(app)
File "/usr/local/lib/python2.7/dist-packages/flask_mongoengine/__init__.py", line 66, in init_app
self.connection = mongoengine.connect(**conn_settings)
File "/usr/local/lib/python2.7/dist-packages/mongoengine/connection.py", line 164, in connect
return get_connection(alias)
File "/usr/local/lib/python2.7/dist-packages/mongoengine/connection.py", line 126, in get_connection
raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
mongoengine.connection.ConnectionError: Cannot connect to database default :
False is not a …
Run Code Online (Sandbox Code Playgroud) 我有一个dict,其中我加载了一些信息,其中一个名称是一个普通的字符串.但不知何故,当我将它分配给dict中的一个键时,它会转换为一个元组,我不知道为什么.
这是我的一些代码:
sentTo = str(sentTo)
print type(sentTo), sentTo
ticketJson['sentTo'] = sentTo,
print type(ticketJson['sentTo']), ticketJson['sentTo']
Run Code Online (Sandbox Code Playgroud)
在我的终端输出以下内容:
<type 'str'> Pete Chasin
<type 'tuple'> ('Pete Chasin',)
Run Code Online (Sandbox Code Playgroud)
为什么将它分配给dict会将其转换为元组?
我正在管理一些Python代码,我现在在日志中看到错误:
Traceback (most recent call last):
File "./app/core.py", line 772, in scrapeEmail
l.info('EMAIL SUBJECT: ', header['value'])
File "./app/__init__.py", line 44, in info
logging.info(str(datetime.utcnow()) + ' INFO ' + caller.filename + ':' + str(caller.lineno) + ' - ' + ' '.join([str(x) for x in args]))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xea' in position 25: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我想这意味着header['value']
包含不同编码的字符.
我四处搜索,这个SO答案暗示"将.encode('utf-8')
最近版本的Python 放在对象的末尾".
这给我提出了两个问题:
.encode('utf-8')
.开x
或关str(x)
.它应该是str(x.encode('utf-8'))
或者在str(x).encode('utf-8')
?