我刚刚完成了第二次使用Django教程,现在我已经更加清楚地理解了这些内容.但是,我仍然不清楚网站内的应用程序如何互相交互.
例如,假设我正在编写一个博客应用程序(显然是一个相当受欢迎的活动).博客文章和评论倾向于一起,但它们足够明显,应该将它们构建到单独的应用程序中,这是Djano开发的一般理念.
请考虑以下示例.实际上我实际上并不会自己编写评论应用程序,因为网上已经存在好的代码,但这是为了演示/练习目的:
mysite的/博客/ models.py
from django.db import models
class post(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
content = models.TextField()
Run Code Online (Sandbox Code Playgroud)
mysite的/评论/ models.py
from django.db import models
from mysite.blog.models import post
class comment(models.Model):
id = models.AutoField()
post = models.ForeignKey(post)
author = models.CharField(max_length=200)
text = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我上面写的是,从另一个应用程序导入模型并将其设置为外键,Django应用程序如何交互?或者是否有一个不同/更好的方法来构成一个网站进行交互?
更新
根据一个响应中的建议,我正在阅读contrib.contenttypes的文档.如果我正确读到这个,我可以像这样重写我的示例评论应用:
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contentypes import generic
class comment(models.Model):
id = models.AutoField()
author = models.CharField(max_length=200)
text = models.TextField()
content_type = models.ForeignKey(ContentType)
content_object = generic.GenericForeignKey(content_type, id)
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
我有一位正在完成航空航天工程硕士学位的朋友.对于他的最终项目,他是一个小团队,负责编写跟踪气象气球,火箭和卫星的程序.该程序接收来自GPS设备的输入,对数据进行计算,并使用这些计算的结果来控制一系列设计用于定向定向通信天线的电机,因此气球,火箭或卫星始终保持对焦.
虽然我自己有点像一个(永恒的)初学者,但我的编程经验比我的朋友多.所以,当他向我征求意见时,我说服他用我选择的语言Python编写程序.
在项目的这一点上,我们正在研究解析GPS设备输入的代码.这是一些示例输入,我们需要以粗体提取数据:
$ GPRMC,092204.999,4250.5589,S,14718.5084,E,1,12,24.4,89.6,男,, 0000*1F $ GPRMC,093345.679,4234.7899,N,11344.2567,W,3,02,24.5,1000.23,男,,, 0000*1F $ GPRMC,044584.936,1276.5539,N,88734.1543,E,2,04,33.5,600.323,M ,,,*00 $ GPRMC,199304.973,3248.7780,N,11355.7832,W,1,06, 02.2,25722.5,男,,,*00 $ GPRMC,066487.954,4572.0089,S,45572.3345,W,3,09,15.0,35000.00,男,,,*1F
以下是对数据的进一步解释:
"我看起来每行都需要五件事.请记住,这些区域中的任何一个都可能是空的.意思是只有两个逗号紧挨着.例如',,,'那里是两个可能随时都满的领域.有些领域可能只有两三个选项,但我不认为我应该指望它."
两天前,我的朋友能够从用于追踪最近气象气球发射的GPS接收器获取完整的日志.数据很长,所以我把它全部放在这个pastebin中.
我自己对正则表达式仍然很新,所以我正在寻求一些帮助.
作为Python的GUI开发新手(使用pyGTK),我刚刚开始学习线程.为了测试我的技能,我写了一个简单的小GTK界面和一个开始/停止按钮.目标是,当单击它时,线程启动会快速增加文本框中的数字,同时保持GUI响应.
我的GUI工作得很好,但是我遇到了线程问题.这可能是一个简单的问题,但我的想法是关于当天的油炸.下面我首先粘贴了Python解释器的引用,然后是代码.你可以去http://drop.io/pxgr5id下载它.我正在使用bzr进行版本控制,因此如果您想进行修改并重新删除它,请提交更改.我也在http://dpaste.com/113388/粘贴代码,因为它可以有行号,这个降价的东西让我头疼.
更新于1月27日,美国东部时间15:52:可在此处找到稍微更新的代码:http://drop.io/threagui/asset/thread-gui-rev3-tar-gz
追溯
crashsystems@crashsystems-laptop:~/Desktop/thread-gui$ python threadgui.pybtnStartStop clicked
Traceback (most recent call last):
File "threadgui.py", line 39, in on_btnStartStop_clicked
self.thread.stop()
File "threadgui.py", line 20, in stop
self.join()
File "/usr/lib/python2.5/threading.py", line 583, in join
raise RuntimeError("cannot join thread before it is started")
RuntimeError: cannot join thread before it is started
btnStartStop clicked
threadStop = 1
btnStartStop clicked
threadStop = 0
btnStartStop clicked
Traceback (most recent call last):
File "threadgui.py", line 36, in on_btnStartStop_clicked
self.thread.start() …Run Code Online (Sandbox Code Playgroud) 我是Python新手,尝试使用pyCurl.我正在研究的项目是为twitpic.com API(http://twitpic.com/api.do)创建一个Python包装器.有关参考,请查看代码(http://pastebin.com/f4c498b6e)和我收到的错误(http://pastebin.com/mff11d31).
请特别注意代码的第27行,其中包含"xml = server.perform()".在研究了我的问题之后,我发现,与我之前的想法不同,.perform()不会从twitpic.com返回xml响应,但是在上传成功时没有返回(嗯!).
在进一步查看错误输出之后,在我看来,我想要填充到"xml"变量中的xml输入反而被打印到以太标准输出或标准错误(不确定哪个).我确信有一种简单的方法可以做到这一点,但我现在似乎无法想到这一点.如果你有任何提示可以指出我正确的方向,我会非常感激.提前致谢.