只是想知道哪一个是使用导入的最佳方式:
import * as Foo from './foo';
VS:
import { bar, bar2, bar3 } from './foo';
例如,在效率方面,我使用webpack来捆绑所有JavaScript文件.即使我没有在主代码中使用它们,第一个实际上会导入所有内容吗?
我能找到的一些参考文献是:
在Airbnb风格指南中,他们建议不要使用通配符,因此总会有默认的导入对象,而这一点.
我正在使用pyinstaller构建我的烧瓶应用程序,一切正常,除了我遇到Jinja2模板的问题.
它给了我jinja2.exceptions.TemplateNotFound,
我试图把from app import template哪个是模板文件夹,但它不起作用(我猜因为它们不包含任何py文件).
我也尝试更改.spec文件以包含该templates文件夹
added_files = [
( '..\\CommerceApp\\app\\templates', 'templates' ),
( '..\\CommerceApp\\app\\static', 'static' )
]
a = Analysis(['..\\CommerceApp\\run.py'],
pathex=['D:\\PythonProjects\\CommerceAppExe'],
binaries=None,
datas=added_files,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
Run Code Online (Sandbox Code Playgroud)
但它也不起作用,就像我自己手动复制文件夹一样.
有没有办法包含与.exe捆绑在一起的模板?
编辑
这是我的spec档案
# -*- mode: python -*-
block_cipher = None
a = Analysis(['..\\CommerceApp_withPyInstaller\\run.py'],
pathex=['D:\\PythonProjects\\CommerceAppExe'],
binaries=None,
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts, …Run Code Online (Sandbox Code Playgroud) 由于某种原因,我需要在里面声明一个字段,__init__()所以我可以制作任意类型的FormField.
举个例子form.py:
class PurchaseForm(Form):
item_class = ItemForm
transaction_items = FieldList(FormField(item_class),
label='items',
min_entries=1)
def __init__(self, item_class, *args, **kwargs):
super().__init__(*args, **kwargs)
self.item_class = item_class
self.transaction_items = FieldList(FormField(self.item_class),
label='items',
min_entries=1)
Run Code Online (Sandbox Code Playgroud)
如果我这样做,该transaction_items字段不会被替换__init__(),我可以做一些事情来覆盖它吗?或者setattr为这个特定的例子做些什么?
编辑:这是我如何指定构造函数
import form
@app.route('/add/purchase-transaction', methods=['GET', 'POST'])
def add_purchase_transaction():
form = forms.PurchaseForm(form.ItemForm)
if form.validate_on_submit():
# do something
return render_template('add-purchase-transaction.html', form=form)
Run Code Online (Sandbox Code Playgroud)
所以我的目标是做一个PurchaseForm具有FieldList包含ItemForm窗体类,并在将来,我可以换ItemForm到不同的类,例如PurchaseItemForm
python ×2
ecmascript-6 ×1
es6-modules ×1
flask ×1
import ×1
javascript ×1
jinja2 ×1
pyinstaller ×1
templates ×1
wildcard ×1
wtforms ×1