我的目标是创建一个能够执行持久的主要系统任务的应用程序,例如:
问题是我需要以某种方式独立于Web浏览器进行准备.我的意思是,例如在开始结账/复制操作后,关闭Web浏览器不会中断操作.所以回到那个网站后,我可以看到复制继续进行或者在浏览器关闭时启动了另一个操作......
我正在搜索各种工具,如RabbitMQ + Celery,Twisted,Pyro,XML-RPC,但我不知道这些工具是否适合我.有没有人在创建Django应用程序时遇到类似的需求?如果有任何我应该知道的方法/包,请告诉我.代码示例也将非常受欢迎!
提前感谢您的建议!
(抱歉我的英语不好.我正在努力.)
我知道您可以在类 Unix 操作系统上以 Vi 模式使用 Python shell。例如,我在我的以下行中~/.inputrc:
set editing-mode vi
Run Code Online (Sandbox Code Playgroud)
这让我可以在 Python shell 中使用 Vi 风格的编辑。
但是当在 Windows XP 机器上使用 Python 时,这可以工作吗?我使用的是直接从 python.org 下载的适用于 Windows 的预构建 Python。
我猜 Windows 版本不使用 GNU Readline 库,但我很高兴被证明是错误的。:)
无论出于何种原因,当我不熟悉Python和Django时,我在models.py文件的顶部写了一些这样的import语句:
from django.contrib import auth
Run Code Online (Sandbox Code Playgroud)
我会像这样使用它:
class MyModel(models.Model):
user = models.ForeignKey(auth.models.User)
# ...
Run Code Online (Sandbox Code Playgroud)
这很好.很久以后,我写了一个自定义管理命令,它会这样做:
from myapp.models import MyModel
Run Code Online (Sandbox Code Playgroud)
当我运行我的自定义命令(python manage.py my_command)时,这将导致Python抱怨该模块auth在models声明ForeignKeymodels.py中的行上没有属性.
要解决此问题,我将models.py更改为更常见的:
from django.contrib.auth.models import User
class MyModel(models.Model):
user = models.ForeignKey(User)
# ...
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释我错过了什么吗?运行管理命令时,环境中是否存在不同之处?或者我一直都做错了?谢谢!
编辑:在dmitko关于循环导入的预感之后,这里是我的models.py文件中使用的导入.我正在显示auth注释掉的原始导入,以及唯一具有auth用户模型外键的模型:
import datetime
from django.db import models
# from django.contrib import auth
from django.contrib.auth.models import User
class UserLastVisit(models.Model):
# user = models.ForeignKey(auth.models.User, unique=True)
# ^^^^^^^^^^^^^^^^
# after adding mgmt command, error occurred here; change to …Run Code Online (Sandbox Code Playgroud) 我是网络抓取的新手,刚刚开始尝试用Python编写的抓取框架Scrapy.我的目标是刮掉旧的雅虎集团,因为他们没有提供API或任何其他方法来检索邮件存档.雅虎集团的设置使您必须先登录才能查看档案.
我认为,我需要完成的步骤是:
我开始粗略地用scrapy蜘蛛完成上面的工作,这就是我到目前为止所拥有的.我想要观察的是登录工作,我能够检索第一条消息.一旦我开始工作,我将完成其余的工作:
class Sg101Spider(BaseSpider):
name = "sg101"
msg_id = 1 # current message to retrieve
max_msg_id = 21399 # last message to retrieve
def start_requests(self):
return [FormRequest(LOGIN_URL,
formdata={'login': LOGIN, 'passwd': PASSWORD},
callback=self.logged_in)]
def logged_in(self, response):
if response.url == 'http://my.yahoo.com':
self.log("Successfully logged in. Now requesting 1st message.")
return Request(MSG_URL % self.msg_id, callback=self.parse_msg,
errback=self.error)
else:
self.log("Login failed.")
def parse_msg(self, response):
self.log("Got message!")
print response.body
def error(self, failure):
self.log("I haz an error")
Run Code Online (Sandbox Code Playgroud)
当我运行蜘蛛时,我看到它登录并发出第一条消息的请求.但是,我在scrapy的调试输出中看到的只有3个重定向,最终到达我首先要求的URL.但scrapy不会调用我的parse_msg()回调,并且爬行停止.这是scrapy输出的片段: …
我只是想知道objective-c中所有条件语句之间的区别是哪一个更快更轻.
Django将文件时间戳附加到以/ static /开头的所有URL的最佳阶段是什么?
示例网址:
http://mydomain.com/static/css/...
http://mydomain.com/static/img/...
http://mydomain.com/static/js/...
Run Code Online (Sandbox Code Playgroud)
是否有应用程序可以使用Mercurial VCS?
我正在寻找有关makefile结构的一些基本信息.任何指针都将受到高度赞赏.谢谢.
默认情况下,通过运行manage.py createsuperuser命令从项目目录可以创建超级用户,但是该.is_superuser标志是默认的django标志,用于区别超级用户或其他用户。
我不想使用它,因为我在整个应用程序中都使用该标志来显示设置菜单。相反,我在中添加了一个字段userprofile models,该字段为.is_primary_user。
有什么方法可以控制它,以便如果我运行createsuperuser注释,它应该.is_primary_user在userprofile模型中将字段更新为“ 1” ?
我需要将无符号长整数转换为ascii中基数"b"中的字符串.
我收到long和base(0 <b <16),我需要在缓冲区中设置它.知道如何做到这一点,没有itoa()?
Cumps