我想将一些东西存储在数据库中,并使用当前会话作为外键:来自models.py
class Visited(models.Model):
session = models.ForeignKey(Session)
page = models.ForeignKey(Page)
times_visited = models.PositiveIntegerField()
ip_address = models.IPAddressField()
date_last_visited = models.DateTimeField()
def __unicode__(self):
return u'(%s, %s)' % (str(self.session.session_key), str(self.page.name))
Run Code Online (Sandbox Code Playgroud)
要为此模型创建一个新条目,我使用以下内容来获取当前会话(在views.py中):
Session.objects.get(session_key=request.session.session_key)
Run Code Online (Sandbox Code Playgroud)
但是,如果这是用户第一次访问该站点,因此尚未设置cookie,则上述代码将产生DoesNotExist错误.
我知道即使现在有cookie设置,你仍然可以设置会话对象.所以我可以想到一些黑客来完成这项工作,例如:
但我想要一个更好的解决方案,我可以忍受.这个问题是否有任何普遍使用或良好的解决方案?或者我甚至在我的模型中正确引用会话?
谢谢您的帮助.
是否有一个Python模块,我可以创建具有地理位置坐标(纬度和经度)的对象,并查询所有对象是否在给定坐标的5公里距离(即半径)内?
我一直试图将纬度和经度存储为字典中的键(因为它们被键索引)并使用一些距离查找算法来查询它们.但这感觉就像一个可怕的黑客.
基本上就像PostGIS for PostgreSQL,但都在我的Python应用程序的内存中.
python geolocation geospatial coordinates geographic-distance
我正在使用使用Python的Flask(基于Werkzeug).
用户可以下载文件,我正在使用send_from_directory-function.
但是,实际下载文件时,content-length不会设置HTTP标头.因此用户不知道要下载的文件有多大.
我可以os.path.getsize(FILE_LOCATION)在Python 中使用来获取文件大小(以字节为单位),但无法找到content-length在Flask中设置标头的方法.
有任何想法吗?
我正在使用Django会话,我想在管理界面中查看会话数据.这可能吗?
即对于每个会话,我想看到存储在会话数据库中的数据(就我所能收集而言,这本质上是一个字典).
目前我只能看到该Session data字段中的哈希,例如:
gAJ9cQEoVQ5zb3J0aW5nX2Nob2ljZXECVQJQT3EDVQxnYW1lc19wbGF5ZWRxBH1xBVgLAAAAcG9z
dG1hbi1wYXRxBksDc1UKaXBfYWRkcmVzc3EHVQkxMjcuMC4wLjFxCFUKdGVzdGNvb2tpZXEJVQZ3
b3JrZWRxClUKZ2FtZV92b3Rlc3ELfXEMdS4wOGJlMDY3YWI0ZmU0ODBmOGZlOTczZTUwYmYwYjE5
OA==
Run Code Online (Sandbox Code Playgroud)
我已将以下内容放入admin.py中以实现此目的:
from django.contrib.sessions.models import Session
...
admin.site.register(Session)
Run Code Online (Sandbox Code Playgroud)
特别是我希望能够至少看到每个会话的IP地址.(如果我可以计算每个IP地址的会话数,并根据每个IP地址的总数来订购IP,那也会很好.)
谢谢您的帮助 :-)
我正在使用Flask微框架0.6和Python 2.6
我需要从上传的文件中获取mimetype,以便我可以存储它.
这是相关的Python/Flask代码:
@app.route('/upload_file', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
mimetype = #FIXME
if file:
file.save(os.path.join(UPLOAD_FOLDER, 'File-Name')
return redirect(url_for('uploaded_file'))
else:
return redirect(url_for('upload'))
Run Code Online (Sandbox Code Playgroud)
这是网页的代码:
<form action="upload_file" method=post enctype=multipart/form-data>
Select file to upload: <input type=file name=file>
<input type=submit value=Upload>
</form>
Run Code Online (Sandbox Code Playgroud)
代码有效,但我需要能够在上传时获取mimetype.我在这里看过Flask文档:http ://flask.pocoo.org/docs/api/#incoming-request-data
所以我知道它确实得到了mimetype,但我无法弄清楚如何检索它 - 作为文本字符串,例如'txt/plain'.
有任何想法吗?
谢谢.
我正在尝试制作一个iOS 5应用程序,其中包含来自服务器的实时内容.它只会在应用程序运行时使用这些.
为了实现无需轮询的实时性,我一直在评估两条设计路线:
从应用程序到服务器创建套接字,并通过流交换信息.
使用标准HTTP与服务器通信,并使用来自应用程序的每个请求让服务器知道他们正在查看的内容.如果有新功能可供用户使用,请发送Apple推送通知(没有可见警报),让应用知道它可以下载新内容.
我认为套接字是可行的方法,但在我承诺之前,我想要第二个意见,因为这是我第一次做出这样的事情!
我正在创建一些包含图像的HTML电子邮件.对于每封电子邮件,图片+电子邮件的大小小于150kb.
我正在努力让它们适用于这里提到的主要客户http://www.campaignmonitor.com/resources/will-it-work/email-clients/
据我所知,通过电子邮件包含图像有两种主要方式:
直接嵌入图像.
在我看来,嵌入图像将是最好的解决方案,因为这意味着用户将在打开电子邮件后立即看到它们.这是正确的还是你会建议另一种方式?
非常感谢您的帮助 :-)
(使用iOS 5和Xcode 4.2.)
我按照这里的说明操作:http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/AnnotatingMaps/AnnotatingMaps.html#//apple_ref/doc/uid/TP40009497-CH6-SW15并使用MKCircle和MKCircleView类在我的MKMapView上添加圆形覆盖.
然而我真正想要的是倒圆形叠加,就像下面草图中的左侧地图(目前我有一个像右边那样的圆形叠加):

对于倒圆,叠加应覆盖整个地图 - 除了可见圆.
有没有一种简单的方法可以使用MKCircle/MKCircleView类来实现这一目的?或者我是否需要更深入地定义自定义叠加对象/视图?
谢谢您的帮助 :)
有没有人有在亚马逊的EC2上运行集群Tigase XMPP服务器的经验,主要是我希望了解任何可能让我失望的事情,这是非常明显的.(例如,显然在EC2上运行Ejabberd可能会因Mnesia而导致问题.)
或者,如果您有任何关于在Ubuntu上安装和运行Tigase的一般建议.
额外的信息:
我正在开发的系统使用XMPP只是为了在移动应用程序和服务器之间进行通信(几乎是实时的).
用户数量最初会很小,但希望会增长.这就是系统需要可扩展的原因.大概只有几千个用户你不需要一个cc1.4xlarge EC2实例?(否则这将是非常昂贵的运行!)
我计划将Amazon RDS中托管的MySQL数据库用于XMPP服务器数据库.
我还计划使用SleekXMPP创建一个用Python编写的外部XMPP组件.正是这个外部组件完成了服务器的所有"工作",因为我正在制作的应用程序与即时消息完全不同.对于这部分,我还没有弄清楚如何将用Python编写的外部XMPP组件连接到Tigase服务器.该文档似乎表明组件是专门为Tigase编写的 - 而不是一般的XMPP服务器,使用XEP-0114:Jabber组件协议,正如我所料.
有了这些额外的信息,如果你能想到我应该知道的任何其他事情,我会很高兴知道.
谢谢 :)
我UITableViewController在我的应用程序中使用了一个表,并且我添加了一个NSFetchedResultsController用于提供要在表中显示的数据(设置self为它的委托).
但是我想添加一个唯一的单元格作为表格的最后一个单元格,与NSFetchedResultsController谓词生成的项目无关,我希望这个单元格始终位于表格的底部.
我试过在表视图数据源中简单地将这些方法添加1:
- (NSUInteger)numberOfSectionsInTableView:(UITableView *)sender
{
return [[self.fetchedResultsController sections] count] + 1;
}
- (NSUInteger)tableView:(UITableView *)sender numberOfRowsInSection:(NSUInteger)section
{
return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects] + 1;
}
Run Code Online (Sandbox Code Playgroud)
然后捕获这样生成这个额外行的情况(该表只有1个部分):
- (UITableViewCell *)tableView:(UITableView *)sender
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == [self.fetchedResultsController.fetchedObjects count]) {
//Generate the last cell in table.
} else {
//Generate the rest of the cells like normal.
}
return nil; //To keep the compiler happy.
}
Run Code Online (Sandbox Code Playgroud)
这将检查索引是否是最后一个单元格并正确处理它.
但是,我仍然在运行时收到以下错误:
*** Terminating app …Run Code Online (Sandbox Code Playgroud) python ×4
ios ×3
ios5 ×3
django ×2
flask ×2
amazon-ec2 ×1
coordinates ×1
download ×1
email ×1
email-client ×1
geolocation ×1
geospatial ×1
html-email ×1
http-headers ×1
iostream ×1
mapkit ×1
mkoverlay ×1
tigase ×1
uitableview ×1
webforms ×1
werkzeug ×1
xmpp ×1