我已经尝试了好几天在Amazon Web Services的Elastic Beanstalk下设置Django.我认为我遇到的问题是这个问题:
ERROR - Your WSGIPath refers to a file that does not exist.
Run Code Online (Sandbox Code Playgroud)
我按照这里的教程进行了一直顺利,直到第6步结束,但是除了第5步#2的通用Elastic Beanstalk页面之外,我不能为我的生活展示任何东西.我跑的时候
./manage.py runserver
Run Code Online (Sandbox Code Playgroud)
在我的本地计算机上,一切正常,但我无法部署该页面.我首先尝试使用自己编写的小型Django网站.它没有用,所以我删除了我所做的一切并再次尝试,但是没有用,所以我删除了所有这些并再次尝试使用新的django安装.我尝试了很多次摆弄小东西,但我想我错过了一些重要的东西.
我添加了一个python.config文件,如本教程中所述.
这是我的文件结构:
-.git/
-.mysite/
-myapp/
-__init__.py
-models.py
-tests.py
-views.py
-mysite/
-__init__.py
-settings.py
-urls.py
-wsgi.py
-.ebextensions/
-python.config
-manage.py
-mysite.db
-requirements.txt
Run Code Online (Sandbox Code Playgroud)
来自我的settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mysite.db',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
这是python.config:
container_commands: 01_syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: …Run Code Online (Sandbox Code Playgroud) django wsgi amazon-web-services django-wsgi amazon-elastic-beanstalk
我试图将一系列长数据(大约200个滴答,从小浮点值,如1.3223)渲染成折线图.
当我使用一系列仅少量变化的数据(每个刻度约0.0001)时,图表呈现为非常锯齿状(像剪刀一样).我想以某种方式修复它以在图表上的每个点之间具有"更健全"的半径.
另一方面,当渲染更高的值(大约1382.21)并且刻度之间的差异更大(从0.01到0.05 +/-)时,图形变得更加平滑和美观.
编辑:正如用户 Arie Shaw指出的那样,实际的低值或高值并没有什么区别,它仍然是一个代表小的"单调"变化的问题是一种不那么参差不齐的形式.
var initChart = function(data, container) {
new Highcharts.Chart({
chart: {
type: "area",
renderTo: container,
zoomType: 'x'
},
title: {
text: ''
},
xAxis: {
labels: {
enabled: false
}
},
yAxis: {
title: {
text: ''
}
},
legend: {
enabled: false
},
color: '#A3D8FF',
plotOptions: {
area: {
fillColor: '#C6E5F4',
lineWidth: 1,
marker: {
enabled: false
},
shadow: false,
states: {
hover: {
lineWidth: …Run Code Online (Sandbox Code Playgroud) 第二次编辑:经过一些挖掘后,问题从如何使用局部变量记录异常变为如何防止芹菜发送没有本地变量的第二条日志消息.经过下面的尝试,我实际上注意到我总是收到2封电子邮件,其中一封每帧都有本地变量,另一封没有.
First Edit:我设法通过添加自定义的on_failure覆盖来获取局部变量(对所有任务使用注释,如下所示:
def include_f_locals(self, exc, task_id, args, kwargs, einfo):
import logging
logger = logging.getLogger('celery')
logger.error(exc, exc_info=einfo)
CELERY_ANNOTATIONS = {'*': {'on_failure': include_f_locals}}
Run Code Online (Sandbox Code Playgroud)
但现在的问题是错误到达3次,一次通过芹菜记录器,两次通过root(虽然我没有在我的日志记录设置中传播'celery'记录器)
原始问题: 我有一个django/celery项目,我最近添加了一个岗位处理程序作为根记录器,其级别为"ERROR".这适用于django中发生的大多数错误和异常,除了来自芹菜工人的错误和异常.
发生的事情是,sentry接收到跟踪和守护进程的本地的异常,但不包括f_locals堆栈中每个帧的(本地变量).这些确实出现在普通的python/django异常中.
我想我可以尝试捕获所有异常并手动使用exc_info记录.但这不太理想.
我定义一个pytest夹具,要覆盖的django_db_setup灯具。
为了安全起见,我所做的更改设置了额外的拆卸,因为有使用此夹具的集成测试可能会产生进程,有时需要进行清理以防止所有事情被破坏。
这似乎是合理的,并且在 pytest 文档中也有建议。但是,我不想复制粘贴相同的逻辑,django_db_setup因为我对已经存在的内容感到满意。但是,将其作为函数运行会引发弃用警告:
/usr/local/lib/python3.6/dist-packages/_pytest/fixtures.py:799:
RemovedInPytest4Warning: Fixture "django_db_setup" called directly.
Fixtures are not meant to be called directly, are created automatically
when test functions request them as parameters. See
https://docs.pytest.org/en/latest/fixture.html for more information.
Run Code Online (Sandbox Code Playgroud)
在 pytest 4 中处理这种情况的推荐方法是什么?我们是否鼓励从我们想要覆盖的装置中复制粘贴代码,或者是否有另一种方法来“继承”一个装置,并在调用之前和之后注入例如自定义行为?
在kickstarter.com上,当您向Twitter发布有关项目的内容时,该推文包含一个iframe,其中包含嵌入媒体内容的一些Kickstarter项目详细信息,例如:
https://twitter.com/asfaltboy/status/211421708639416322
要重新创建此类推文,请转到某个ks页面,然后点击视频下方的"推文"链接.推文内容似乎是一些带有项目页面链接的简单文本.
这可能意味着iframe内容在该页面的某个元标记中被引用..但我不能为我的生活图中哪个元标记是...
如何才能做到这一点?
我正在尝试制作一个MongoEngine 的分支,它允许DateTimeField基于将True传递给一个auto_now或auto_now_add(一个Django)来自动更新.
到目前为止,我已经将属性添加到类似的__init__方法中DateTimeField:
def __init__(self, auto_now=None, auto_now_add=None, **kwargs):
self.auto_now, self.auto_now_add = auto_now, auto_now_add
super(DateTimeField, self).__init__(**kwargs)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法弄清楚如何在创建/保存文档时干净地填充此值.我到目前为止看到的唯一解决方案是在BaseDocument的保存或验证方法中添加字段特定的行为......但我不喜欢它.
有谁知道更好的方法?
顺便说一句:我在读完这个问题和@ equinoxel关于扩展mongo并在django中习惯这个属性的评论之后,我已经开始了.
我有一个以下格式的文本文件:
"This is record #1"
"This is record #2"
"This is record #3"
Run Code Online (Sandbox Code Playgroud)
我需要以下格式的输出:
Line number (1) --\t-- "This is Record # 1"
2-- \t-- "This is Record # 2"
3-- \t-- "This is Record # 3"
Run Code Online (Sandbox Code Playgroud)
当前代码:
f = open("C:\input.txt","r")
write_file = open("C:\output.txt","r+")
while True:
line = f.readline()
write_file.write(line)
if not line : break
write_file.close()
f.close()
Run Code Online (Sandbox Code Playgroud) 在旧数据库中,slug字段不是唯一的,因此会创建重复项。现在我要迁移子弹字段unique = True。
slug = models.CharField(max_length=255, unique=True)
$ python manage.py migrate
django.db.utils.IntegrityError: (1062, "Duplicate entry 'some-x-slug' for key 'some_model_slug_6c7ae6ae040a5e98_uniq'")
Run Code Online (Sandbox Code Playgroud)
django迁移时是否有可能检测到重复的子弹,我想object_id在该slug字段的末尾添加,以使该子弹唯一。
有没有解决上述问题的简便方法
我为Django应用程序编写了自定义404/500页面,这些页面工作正常,除非从我的视图中明确返回状态码为500或404的响应。
在后一种情况下,我会得到响应中返回的任何内容。我知道我可以在这些响应中呈现404和500模板,但是有没有办法自动使用这些404/500页面?
为了说明我的问题:
当请求发送到“ http://my.host/pattern_not_matching_anything ”时,我得到的404.html页面就很好了。
但是,当在http://my.host/valid_pattern/invalid_parameter “ 接收到无效请求时,也就是说,调用了我的视图,我在数据库中查找该参数,但找不到它,因此我返回了适当的回应:
return HttpResponse("not found", status_code=404)
Run Code Online (Sandbox Code Playgroud)
返回的HTML页面仅包含“未找到”,而我希望它呈现我自定义的完整404模板。
我有订阅者的数据电子邮件.这是我正在做的事情:
select
email
from
data_list
where
email NOT IN (
select
email_subscribe
from
subscribe
)
Run Code Online (Sandbox Code Playgroud)
这需要很多时间.有关如何改进它的任何建议?
data_list = 50.000电子邮件
订阅表= 1000万封电子邮件
python ×6
django ×4
api ×1
celery ×1
django-wsgi ×1
embed ×1
fixtures ×1
fork ×1
highcharts ×1
iframe ×1
javascript ×1
mongoengine ×1
mysql ×1
pytest ×1
python-2.7 ×1
raven ×1
sentry ×1
sql ×1
twitter ×1
wsgi ×1