几天后我正在使用JavaScript和AngularJS,我不确定以下内容:
我正在开发一个示例项目,在该项目中,用户可以使用存储在JS对象中的一些属性来创建新车,如下所示:
var car = {
color: 'black',
seating: 'leather',
fuelconsumption: 'moderate'
}
Run Code Online (Sandbox Code Playgroud)
用户可以通过单击添加按钮来创建新车.然后Angular创建一个新的汽车实例,用户可以指定新车的愿望.
但是,我应该创建一个像空的对象
var car = {}
Run Code Online (Sandbox Code Playgroud)
并使用绑定的文本输入添加所需的键或我应该做一些不同的事情?
由于新车的属性是先验已知的,我还可以使用所需的键创建一个对象,并将null它们的值设置为:
var car = {
color: null,
seating: null,
fuelconsumption: null
}
Run Code Online (Sandbox Code Playgroud)
由于例如最佳实践,哪种方式更可取?
我计划在docker环境中使用LaTeX来生成基于服务器的PDF报告。
在当前的测试系统环境中,我正在使用来自集线器的docker容器,它似乎运行得很好。
但是,如前所述,容器的dockerfile容器是基于Ubuntu的,由于Ubuntu的系统开销,与我真正需要的功能相比,这导致了相对较大的容器大小。
我认为我可以摆脱Docker Inc.的不必要系统开销,只需使用Alpine Linux而不是Ubuntu即可。
不幸的是,我在Alpine的存储库中找不到任何LaTeX软件包。我将基于非docker的Alpine系统安装为虚拟机并尝试:
apk update
apk search -v --description 'latex'
Run Code Online (Sandbox Code Playgroud)
找不到任何相关的软件包。除此之外,我无法使用Google找到有关LaTeX软件包的更多信息。
那么,有没有像官方存储库那样为Alpine提供LaTeX,或者有没有办法在Alpine中使用例如Debian / Ubuntu软件包?
更新:
有texlive可用的软件包。但是,正如这里讨论的那样,这似乎已经被打破了...
由于链接断开而更新:
上面提供的链接已断开。软件包概述的新链接在此处。
熊猫文档有这个:
使用sep = None,read_csv将尝试在某些情况下通过"嗅探"自动推断分隔符.
我怎样才能访问大熊猫对分隔符的猜测?
我想读取我的文件的10行,让pandas猜测分隔符,并启动我已经选择了分隔符的GUI.但我不知道如何访问大熊猫认为的分界符.
另外,有没有办法将pandas传递给字符串列表以限制它的猜测?
我正在使用 mongoengine 为 MongoDB 开发一种初始化例程。
我们向用户提供的文档是从多个 JSON 文件中读取的,并在应用程序启动时使用上述 init 例程写入数据库。
其中一些文档具有唯一键,mongoengine.errors.NotUniqueError如果将具有重复键的文档传递到数据库,则会引发错误。这根本不是问题,因为我能够使用try-except.
然而,其他一些文档就像一堆值或参数。因此,没有可以检查的唯一键以防止它们被插入数据库两次。我想我可以从所需的集合中读取所有现有文档,如下所示:
docs = MyCollection.objects()
Run Code Online (Sandbox Code Playgroud)
docs并使用以下命令检查要插入的文档是否已可用:
doc = MyCollection(parameter='foo')
print(doc in docs)
Run Code Online (Sandbox Code Playgroud)
即使数据库中已经false有文档也会打印。MyCollection(parameter='foo')
如何在不使用唯一键的情况下实现重复检测?
我通过在eve-API上执行POST请求,将新数据添加到数据库中。由于需要从Python端添加一些数据,因此我想可以通过使用pre-request事件hook添加这些数据。
那么,在将数据插入数据库之前,是否有一种方法可以使用预请求钩子修改POST请求中包含的数据?我已经了解了如何实现这样的钩子,但是对插入数据库之前如何修改数据一无所知。
我通过调整这个例子并将它的移植到 Python3 ,将滚动条与 ttk notebook 结合起来。
我尽可能频繁地使用 ttk 小部件来获得更“现代”的用户界面。但是,没有 ttk 画布小部件,所以我使用了标准的 tkinter 画布。默认情况下,画布小部件的背景颜色似乎是白色(至少在 Mac OS 上),而所有 ttk 小部件的默认背景都是灰色(请参见下面的屏幕截图)。
如何获取包含标签小部件的 ttk 框架的默认背景,以便我可以将其传递到画布Canvas(parent, background='bg_color')并删除包含 ttk 标签的 ttk 框架周围的空白区域?
我知道 ttk 用于styles定义小部件的外观。但是,我不知道如何读取(默认)样式的背景值。

#!/usr/bin/env python3
# coding: utf-8
from tkinter import *
from tkinter import ttk
master = Tk()
def populate():
"""Put in some fake data"""
for row in range(100):
ttk.Label(frame, text="%s" % row, width=3, borderwidth="1", relief="solid").grid(row=row, column=0)
t="this is the second column for row %s" % row …Run Code Online (Sandbox Code Playgroud) 我正在研究一个带有适当GUI的自编模拟工具.通常,有两种主要的用户模式.在第一个中,用户可以输入多个值以进行所需的计算.在所有计算完成后,用户可以通过单击右下角的"显示结果"按钮切换到"结果模式".通过这样做,GUI上部带有图像的主窗口不会改变.但是,GUI下部的前一个输入条目应该更改为消息区域,其中显示错误,警告或其他信息(持续时间,收敛性......).
我能够使两种GUI模式都可切换,但是下框架(称为框架lowerframe)的框架高度发生了变化,看起来非常难看.
我认为所描述的行为是帧内容的不同高度的结果.在第一模式中有几个entry小部件,而在第二模式中只有一个小小label部件包含foo.
如何防止框架高度动态变化?换句话说:有没有办法来修复高度lowerframe?
我指定height=200(以及btnframe在GUI的右下角),这似乎没有任何效果,因为包含foo-label小部件的框架肯定小于那些200像素.
--- MWE ---
#!/usr/bin/env python3
# coding: utf-8
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.parameternames = []
# create master window
self.master = master
# create master window
self.create_masterwindow()
def create_masterwindow(self):
"""
creates master window with menubar and sets GUI to input mode
"""
self.master.title('GUI') …Run Code Online (Sandbox Code Playgroud) 我正在使用numpy.optimize.fsolve. 由于不正确的初始值,其中一些计算导致 RuntimeWarning 告诉
RuntimeWarning:根据最近十次迭代的改进来衡量,迭代没有取得良好进展。
警告。警告(味精,运行时警告)
或者
RuntimeWarning:根据最近五次 Jacobian 评估的改进来衡量,迭代没有取得良好进展。
警告。警告(味精,运行时警告)
由于我将所有初始值和所属结果写入文本文件(只是将标准输出管道传输到文件),因此我想知道上面提到的 RuntimeWarnings 在我的 500 步计算中发生了什么。
正如numpy 文档中提到的,警告由Python 的标准警告模块处理,但是有没有办法在第一次 RuntimeWarning 发生后停止或暂停计算?
当我们进一步"嵌套"它们时,有人会评论字典的复杂性如何增加?
例如,我添加一个元素如下:
dict_name[a][b][c][d] = 0
Run Code Online (Sandbox Code Playgroud)
我认为任何字典的查找时间应该是相同的(常数时间为O(1)),但是如果我添加这样的元素,它会显着改变吗?
dict_name[a][b][c]....[z]
Run Code Online (Sandbox Code Playgroud) 我想在用户下载由 Flask 应用程序创建的文件后删除一个文件。
为此,我在 SO 上找到了这个答案,它没有按预期工作,并引发了一个after_this_request未定义的错误。
因此,我更深入地研究了Flask 的文档,其中提供了有关如何使用该方法的示例片段。因此,我通过定义after_this_request示例代码段中所示的函数来扩展我的代码。
执行代码resp。运行服务器按预期工作。但是,该文件没有被删除,因为@after_this_request没有被调用,这很明显,因为After request ...它没有打印到终端中 Flask 的输出:
#!/usr/bin/env python3
# coding: utf-8
import os
from operator import itemgetter
from flask import Flask, request, redirect, url_for, send_from_directory, g
from werkzeug.utils import secure_filename
UPLOAD_FOLDER = '.'
ALLOWED_EXTENSIONS = set(['csv', 'xlsx', 'xls'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
def …Run Code Online (Sandbox Code Playgroud) 我正在处理由同一天/日期的不同时间组成的数据集。不同的时间代表给定事件的发生。除了时间之外,日期还在另一列中给出(有关更多详细信息,请参阅下面的数据片段)。
对于进一步的数据处理,我需要将不同的时间与日期结合起来以获得完整的日期时间时间戳。幸运的是,我能够通过实现这样的嵌套.apply()调用来实现所需的输出:
import io
import pandas as pd
DATA_STRING = """
date event_1 event_2 event_3
2019-12-16 14:01:00 14:27:00 14:47:00
2020-01-16 13:47:00 14:08:00 14:28:00
2020-01-20 12:02:00 12:23:00 12:42:00
"""
TIME_COLUMNS = ['event_1', 'event_2', 'event_3']
def combine_timestamp(row):
date = row['date']
times = row[TIME_COLUMNS]
return times.apply(lambda t: pd.Timestamp.combine(date, t.time()))
file_like = io.StringIO(DATA_STRING)
df = pd.read_csv(file_like, sep='\s+')
df['date'] = pd.to_datetime(df['date'])
df[TIME_COLUMNS] = df[TIME_COLUMNS].apply(pd.to_datetime)
# --> timestamps with date set to today (not a problem as time is relevant only)
df[TIME_COLUMNS] = df.apply(combine_timestamp, …Run Code Online (Sandbox Code Playgroud) # *-* coding: utf-8 *-*
import numpy as np
import scipy as sc
A = np.array([[1,1], [1,2], [3,1]])
B = np.array([[2,3], [3,2], [1,4]])
print (A==B).all()
print np.array_equal(A, B)
print np.array_equiv(A, B)
print np.allclose(A, B)
Run Code Online (Sandbox Code Playgroud)
但他们只是说"假",但我仍然可以添加这两个数组.我必须检查是否允许加法/乘法(维度?),如果没有,我必须发出错误.
我有一个ui-router模板md-tabs,其中包含一些选项卡是静态的,其他选项卡是通过ng-repeat迭代数据模型的给定数组动态创建的.
在这些动态创建的选项卡中,有三个按钮可以执行以下操作
的move tab按钮调用同一控制器内的功能.$index当前显示的选项卡的值以及所需的方向(-1向左1移动,向右移动)将传递给该功能.
因此视图的HTML片段如下所示:
<md-content flex layout-padding>
<md-card>
<md-tabs md-dynamic-height md-border-bottom md-autoselect md-swipe-content md-selected="selectedTab">
<md-tab id="{{ 'tab' + $index }}" data-ng-repeat="tab in tabs track by $index">
<md-tab-label>Tab {{ $index + 1 }}</md-tab-label>
<md-tab-body>
<md-card-title>
<md-card-title-text>
<div flex layout="row">
<div flex><span class="md-headline">Tab {{ $index + 1 }}</span></div>
<div flex align="right">
<md-button ng-click="moveTab(-1, $index)">Move tab left</md-button>
<md-button ng-click="moveTab(1, $index)">Move tab right</md-button>
</div>
</div>
</md-card-title-text>
</md-card-title> …Run Code Online (Sandbox Code Playgroud) tabs angularjs angularjs-scope angular-ui-router angular-material
python ×10
angularjs ×2
mongodb ×2
numpy ×2
pandas ×2
python-3.x ×2
tk-toolkit ×2
tkinter ×2
alpine-linux ×1
apply ×1
canvas ×1
csv ×1
datetime ×1
delete-file ×1
dictionary ×1
docker ×1
duplicates ×1
eve ×1
flask ×1
javascript ×1
latex ×1
lookup ×1
mongoengine ×1
object ×1
pdflatex ×1
request ×1
tabs ×1
time ×1
ttk ×1
ubuntu ×1
widget ×1