我正在从Django发送电子邮件(使用Webfaction).但是,这很慢,所以我想在后台发送电子邮件,即使电子邮件尚未发送,也会向用户返回回复.
有什么想法是最好的方法吗?
我读过有关芹菜的文章,但似乎有很多步骤可以设置它:http://markliu.me/2011/sep/29/django-celery-on-webfaction-using-rabbitmq/那没关系,但是我我想知道这是尝试之前要走的路.
线程怎么样?http://www.artfulcode.net/articles/threading-django/
还是cron的工作?http://docs.webfaction.com/software/general.html
您有其他经验的人吗?
使用Django(由Webfaction托管),我有以下代码
import time
def my_function(request):
time.sleep(10)
return HttpResponse("Done")
Run Code Online (Sandbox Code Playgroud)
当我访问我的网址www.mysite.com时,这是通过Django执行的
我两次之后立即输入网址.我看到它的方式,这些都应该在10秒后完成.但是,第二个呼叫等待第一个呼叫,并在20秒后结束.
但是,如果我输入一些虚拟GET参数,www.mysite.com?dummy=1和www.mysite.com?dummy=2那么它们都会在10秒后完成.因此它们可以同时运行.
就好像sleep()的范围在某种程度上是全局的?也许输入一个参数使它们作为不同的进程运行而不是相同的???
它由Webfaction托管.httpd.conf有:
KeepAlive Off
Listen 30961
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 1
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 5
Run Code Online (Sandbox Code Playgroud)
我确实需要能够使用sleep()并相信它并没有停止一切.那么,它是什么以及如何解决它?
编辑:Webfaction使用Apache运行它.
我需要反向迭代 jquery 子元素:
$("#parent").children().each(function() {
# do stuff
})
Run Code Online (Sandbox Code Playgroud)
但反过来。
我已经看到使用 reverse() 和 get()
$($("li").get().reverse()).each(function() { /* ... */ });
Run Code Online (Sandbox Code Playgroud)
但似乎无法让它与儿童()一起工作。
我有一个利用多个数据库的Django项目.https://docs.djangoproject.com/en/dev/topics/db/multi-db/
我执行了很多这样的原始查询:
cursor = connection.cursor()
cursor.execute("select * from my_table")
....
transaction.commit_unless_managed()
Run Code Online (Sandbox Code Playgroud)
如何指定要使用的数据库?
如何确保打印出失败的实际行而不包含整个回溯?回溯对我来说可能太长了,我也要把它全部打印出来。
这段代码只打印函数a和b中的错误,但我想看到实际的错误发生在函数d中。
import traceback
def a():
try:
return b();
except:
print traceback.format_exc(2)
def b():
return c();
def c():
return d();
def d():
x = 1/0
a()
Run Code Online (Sandbox Code Playgroud) 如何从Python创建一个开放的办公室.odt文件?
我正在看这个http://wiki.openoffice.org/wiki/Python,但很困惑.我已经有了Python 2.7所以我从哪里开始?以上链接讨论了使用Python进行Open Office运输.我已经得到了吗?我甚至需要OpenOffice吗?是不是只有一些模板,某种方式文档需要看起来如此,它将被识别为odt?我需要实际的编辑器吗?
我喜欢https://github.com/mikemaccana/python-docx,但是对于Open Office.
对于这个开放式问题,我很抱歉,但我确实已经环顾四周,觉得我错过了一些关于所需内容的重要链接/理解.
我一直在使用以下技巧来制作特定于浏览器的html:
<!--[if (IE)]> <div class= "ie"> <![endif]-->
<!--[if !(IE)]><!--> <div class= "not_ie"> <!--<![endif]-->
</div>
Run Code Online (Sandbox Code Playgroud)
这不适用于IE11.有什么新技巧可以使用吗?
我可以使用javascript检测它:
要么
Object.hasOwnProperty.call(window, "ActiveXObject") && !window.ActiveXObject)
Run Code Online (Sandbox Code Playgroud)
但我希望避免这种情况.
这个问题与我刚才问过的问题非常相似:我可以使用Google搜索结果来显示最终的重定向网址吗?,但现在问题是Django特有的.
我的网站的网页网址使用以下格式:
www.mysite.com/id/pretty_title
Run Code Online (Sandbox Code Playgroud)
首页链接到这些页面,但href实际上包含一些参数:
www.mysite.com/id/?some_ugly_parameters_to_let_me_know_what_search_it_is_from
Run Code Online (Sandbox Code Playgroud)
然后重定向到
www.mysite.com/id/pretty_title
Run Code Online (Sandbox Code Playgroud)
显示页面.
我的问题是 Google的搜索结果显示该页面的链接是丑陋的网址,而不是漂亮的重定向网址.
我所学到的是我需要提供规范链接.但是,当丑陋的网页从未真正存在时,我怎么能这样做,至少不是我写的那个?
服务器端发生的事情是丑陋网址的视图会重定向:
return HttpResponseRedirect(pretty_url)
Run Code Online (Sandbox Code Playgroud) 我需要告诉用户我的网站使用的浏览器.(编辑:用户需要添加书签,这在标准的"互联网"浏览器上是不可能的.我需要知道要向他们展示什么消息.)
编辑:我不需要能够检测任何类型的浏览器.在这种情况下,我特别需要能够检测浏览器是否真的是谷歌Chrome浏览器.
对于至少一个智能设备,我无法分辨股票'互联网'浏览器和Chrome之间的区别; 两者都包含"Chrome"一词.
三星galaxy s5:
股票浏览器用户代理:
Mozilla/5.0(Linux; Android 4.4.2; zh-CN; SAMSUNG-SM-G900A Build/KOT49H)AppleWebKit/537.36(KHTML,类似Gecko)版本/ 1.6 Chrome/28.0.1500.94 Mobile Safari/537.36
Chrome用户代理:
Mozilla/5.0(Linux; Android 4.4.2; SAMSUNG-SM-G900A Build/KOT49H)AppleWebKit/537.36(KHTML,与Gecko一样)Chrome/36.0.1985.128 Mobile Safari/537.36
"版本/ Xx"是不同的,但总是如此吗?
编辑:我已经按照评论中的建议检查了以前的答案.他们认为非Chrome浏览器不包含Chrome一词.
我在Eclipse PyDev中有一个Django项目.
我有一个文件views.py,其中包含以下行:
from models import ingredient2
Run Code Online (Sandbox Code Playgroud)
在models.py我有:
from django.db import models
class ingredient2(models.Model):
ingredient = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该应用程序时,我收到以下错误:
File "C:\Python27\lib\site-packages\django\db\models\base.py", line 54, in __new__
kwargs = {"app_label": model_module.__name__.split('.')[-2]}
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
我确实同步了数据库并启动了服务器运行.
我进入了base.py并添加了2个打印语句(是的,我可能不应该编辑Django的文件):
if getattr(meta, 'app_label', None) is None:
# Figure out the app_label by looking one level up.
# For 'django.contrib.sites.models', this would be 'sites'.
model_module = sys.modules[new_class.__module__]
print model_module #ADDED
print model_module.__name__ #ADDED
kwargs = {"app_label": model_module.__name__.split('.')[-2]}
Run Code Online (Sandbox Code Playgroud)
他们打印出来:
<module 'models' from 'C:\Users\Tine\workspace\slangen\slangen2\bolig\models.pyc'>
models
Run Code Online (Sandbox Code Playgroud)
manage.py包含在bolig文件夹中.我认为正确的应用标签将是"bolig".该应用程序几个月前就已经运行了,现在,当我回到它时,有些事情是不对的.我一直在PyDev中创建其他项目.
django ×4
python ×3
android ×1
css ×1
html ×1
httpresponse ×1
javascript ×1
jquery ×1
sleep ×1
user-agent ×1