我在一个对象中有一个路由列表,想将它导入到其他文件中,并对对象属性进行自动完成。
索引.ts
import allRoutes from './routes';
allRoutes.routeHome;
Run Code Online (Sandbox Code Playgroud)
路由.ts
const allRoutes = {
routeHome: '',
routePortfolio: 'portfolio'
};
export default allRoutes;
Run Code Online (Sandbox Code Playgroud)
一切正常。但是,如果我将类型添加到我的 allRoutes 以进行这样的类型检查:
const allRoutes: {[key: string]:string} = {
routeHome: '',
routePortfolio: 'portfolio'
};
Run Code Online (Sandbox Code Playgroud)
或者像这样:
interface IRoutes {
[key: string]: string;
}
const allRoutes: IRoutes = {
routeHome: '',
routePortfolio: 'portfolio'
};
Run Code Online (Sandbox Code Playgroud)
一切都崩溃了
我在 WebStorm 或 VSCode 中尝试过这个。如果我为对象属性添加类型 - 自动完成停止工作。为什么会发生?我该如何解决这个问题?
我在我的Django项目中使用了像本例中的 Google Style Python Docstrings .当我创建一个类并在docstring中使用属性表示法时,Pycharm总是说 - "未解析的引用".
class Post(models.Model):
"""
Class for posts.
Attributes:
title(str): Post title.
"""
title = models.CharField(max_length=120)
Run Code Online (Sandbox Code Playgroud)
据我所知,PyCharm没有看到self的title和def __init__()功能,写这个错误,但在Django我从来没有见过使用def __init__()从继承类models.
我该怎么办?这是我的错误还是PyCharm在这种情况下看不到上下文?我应该使用def __init__()或其他什么或以其他方式编写docsting?
我在ubuntu 16.04上使用uWSGI和nginx使用Django 1.10并使用ansible部署我的应用程序.我的项目没有默认结构,但很常见(感谢两个scoopce :).我使用split dev和production settings和config文件夹代替'name'项目文件夹.它看起来像这样:
|-- config
| |-- __init__.py
| |-- settings
| | |-- __init__.py
| | |-- base.py
| | `-- dev.py
| |-- urls.py
| |-- wsgi_dev.py
| `-- wsgi_production.py
|-- manage.py
`-- requirements.txt
Run Code Online (Sandbox Code Playgroud)
我production.py从安全加密的ansible和在配置/设置中找到我的genarate.
使用此配置,我得到"没有找到python应用程序检查您的启动日志".Uwsgi看不到我的申请.
({{}}它是ansible的jinja2语法)
/etc/uwsgi/sites/{{ project_name }}
[uwsgi]
chdir = {{ django_root }}
home = /home/{{ project_user }}/venvs/{{ project_name }}
module = config.wsgi_production:application
master = true
processes = 5
socket = /run/uwsgi/{{ project_name }}.sock
chown-socket = {{ project_user }}:www-data
chmod-socket …Run Code Online (Sandbox Code Playgroud) 新的 Windows 终端(Windows 终端(预览版)版本:0.2.1831.0)在 JSON 文件中有设置。如何设置与 Anaconda 一起运行的 powershell?Anaconda 在 powershell 中运行:
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\Users\akali\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\akali\Anaconda3' "
Run Code Online (Sandbox Code Playgroud)
Windows 终端使用 JSON 中的配置文件,如下所示:
"profiles": [{
"colorScheme": "Solarized Light",
"commandline": "powershell.exe"
}]
Run Code Online (Sandbox Code Playgroud)
如何在 JSON 中使用带双引号的 Args 运行以允许我运行类似的东西-Command "& 'C:\'"?
我用很多模块编写大程序.在同一模块中我希望使用日志记录.登录Python的最佳实践是什么?我应该使用import standart日志记录模块并在我的每个文件中使用它:
#proxy_control.py
#!/usr/bin/env python3
import logging
class ProxyClass():
def check_proxy():
pass
logging.basicConfig(filename='proxy.log', level=logging.INFO)
logging.info('Proxy work fine')
Run Code Online (Sandbox Code Playgroud)
或者我应该写一个MyLog()类继承默认日志记录并从我所有其他模块中使用它?
#proxy_control.py
#!/usr/bin/env python3
import MyLog
class ProxyClass():
def check_proxy():
pass
Mylog.send_log('Proxy work fine')
#my_log.py
#!/usr/env/bin python3
import logging
class MyLog():
def send_log(value):
pass
Run Code Online (Sandbox Code Playgroud) django ×2
python ×2
python-3.x ×2
anaconda ×1
ansible ×1
docstring ×1
json ×1
logging ×1
nginx ×1
powershell ×1
pycharm ×1
typescript ×1
uwsgi ×1
webstorm ×1
windows ×1