如果我想使用该pip命令下载一个包(及其依赖项),但保留所有下载的压缩文件(例如,django-socialregistration.tar.gz) - 有没有办法做到这一点?
我尝试了各种命令行选项,但似乎总是解压缩并删除 zipfile - 或者它获取zipfile,但仅适用于原始包,而不是依赖项.
我最初的问题是如何为Django登录页面启用HTTPS,以及唯一的响应,建议我 - 将整个站点设置为仅限HTTPS.
鉴于我正在使用Django 1.3和nginx,那么使网站成为HTTPS的正确方法是什么?
一个回复提到了一个中间件解决方案,但有一点需要注意:
Django在维护POST数据时无法执行SSL重定向.请构建您的视图,以便重定向仅在GET期间发生.
有关nginx重写为https的服务器故障的问题,还提到了POST丢失数据的问题,而且我对nginx不太熟悉,无法确定解决方案的工作情况.
而且EFF建议只使用HTTPS,请注意:
应用程序必须在设置cookie时设置Secure属性.此属性指示浏览器仅通过安全(HTTPS)传输发送cookie,从不安全(HTTP).
像Django-auth这样的应用程序是否能够将cookie设置为安全?或者我是否必须编写更多中间件?
那么,在以下方面,配置Django/nginx组合以实现仅HTTPS的最佳方法是什么?
编辑 - 我在测试多个浏览器时发现的另一个问题.假设我有一个URL https://mysite.com/search/,它有一个搜索表单/按钮.我按一下按钮,程序在Django像往常一样的形式,做一个Django HttpResponseRedirect来http://mysite.com/search?results="foo".https://mysite.com/search?results="foo"根据需要,Nginx将其重定向到.
但是 - 重定向发生时,Opera有一个可见的闪存.它发生在每次搜索,即使是相同的搜索词(我猜https真的不缓存:)更糟糕的是,当我在IE中测试它时,我首先得到的消息:
您将被重定向到不安全的连接 - 继续?
单击"是"后,紧接着是:
您即将通过安全连接查看页面 - 继续吗?
虽然第二个IE警告可以选择关闭它 - 但第一个警告没有,所以每当有人进行搜索并被重定向到结果页面时,它们至少会收到一条警告消息.
我正在尝试使用Pip从Github安装一个包,使用以下语法
pip install -e git+https://github.com/facebook/python-sdk.git#egg=FacebookSDK
Run Code Online (Sandbox Code Playgroud)
并得到错误"找不到命令git".这个问题有(未经检查)答案,说Git需要安装在系统上.然而,这篇答案指出Pip支持"Git,Subversion,Bazaar和Mercurial".
该皮普文档还表示,它已经"对其他版本控制系统(GIT,水银和集市)原生支持".
那么如何用Pip安装这个软件包呢?我真的不希望我的VPS安装的Git.或者是否有任何非Pip工具,只是从存储库中提取文件(没有完整的Git安装)?
更新 - 所以我咬了一口子弹,并在我的VPS上安装了Git.Pip仍然无法抓住包裹,但它提供了一组不同的错误,所以 - 进步.:)我终于做到了
git clone http://github.com/facebook/python-sdk.git
Run Code Online (Sandbox Code Playgroud)
(注意http,不是https),并设法下载包,然后手动安装它.
当该窗口小部件位于从数据模型自动生成的窗体上时,是否可以在Django select(下拉)窗口小部件中创建命名选项组?我可以在下面的左侧图片上创建小部件吗?

我创建具有命名组的表单的第一个实验是手动完成的,如下所示:
class GroupMenuOrderForm(forms.Form):
food_list = [(1, 'burger'), (2, 'pizza'), (3, 'taco'),]
drink_list = [(4, 'coke'), (5, 'pepsi'), (6, 'root beer'),]
item_list = ( ('food', tuple(food_list)), ('drinks', tuple(drink_list)),)
itemsField = forms.ChoiceField(choices = tuple(item_list))
def GroupMenuOrder(request):
theForm = GroupMenuOrderForm()
return render_to_response(menu_template, {'form': theForm,})
# generates the widget in left-side picture
Run Code Online (Sandbox Code Playgroud)
它运行良好,在左侧创建了下拉窗口小部件,并使用命名组.
然后我创建了一个具有基本相同结构的数据模型,并使用Django从模型中自动生成表单的能力.它起作用 - 从某种意义上说它显示了所有选项.但选项不在命名组中,到目前为止,我还没有想出如何这样做 - 如果它甚至可能.
我找到了几个问题,答案是"创建表单构造函数并在那里进行任何特殊处理".但看起来form.ChoiceField需要一个命名组的元组,我不知道如何将元组转换为QuerySet(如果我正确理解QuerySets是指向数据的指针,那么这可能是不可能的,而不是实际数据).
我用于数据模型的代码是:
class ItemDesc(models.Model):
''' one of "food", "drink", where ID of “food” = 1, “drink” …Run Code Online (Sandbox Code Playgroud) Google拥有最酷的效果 - 一旦它成为Pac-man游戏,今天显然是第一届世界博览会成立160周年,Google的徽标就是它的形象.他们还将鼠标变成放大镜,可以扫过图片(金戒指).

我想知道他们是怎么做到的.它显然是Javascript,我查看了页面源代码,但它并不是特别易读(毫不奇怪).
我想创建一个具有默认值的Django模型Field(IntegerField),并创建一个从模型派生的表单,其中该字段是可选的.如果没有在表单上设置,那么当我保存表单时,我希望保存到DB的默认值.
# model.py
class Invoice(models.Model):
# IntegrityError "Column 'expireDays' cannot be null"
expireDays = models.PositiveSmallIntegerField(default=1)
# expireDays = *null* in DB
expireDays = models.PositiveSmallIntegerField(default=1, blank=True, null=True)
# forms.py
class InvoiceForm(forms.ModelForm):
# leaving this line out gives invalid form
expireDays = forms.IntegerField(required=False)
class Meta:
model = Invoice
Run Code Online (Sandbox Code Playgroud)
(我一次只使用一个字段声明行.:)
我甚至不确定我是否正确地声明了默认值.我能找到的唯一参考是关于James Bennett 处理选择的文章.我还没有在Django文档中找到它(我使用的是1.2版本 - 也许是1.3版本?)
更新 - 我尝试在MySql数据库中设置字段的默认值,无效.似乎,即使表单没有字段值,它也会继续向DB 分配null,覆盖MySql默认值.
虽然我目前只是在创建表单的视图中设置默认值 - 我真的不喜欢它,因为它在视图中负责字段的完整性,而不是DB.
我认为它可行的方式是,可以在表单中设置或不设置字段 - 如果设置,该值将写入DB,如果未设置,则将使用DB默认值.相反,如果未设置,表单将向数据库写入null …
减少和减少可以让您在序列中累积状态.序列中的每个元素将修改累积状态,直到达到序列结束.
在无限列表中调用reduce或reduce的含义是什么?
(def c (cycle [0]))
(reduce + c)
Run Code Online (Sandbox Code Playgroud)
这将很快抛出OutOfMemoryError.顺便说一句,(reduce + (cycle [0]))不会抛出OutOfMemoryError(至少不是我等待的时间).它永远不会回来.不知道为什么.
有没有办法以一种有意义的方式调用无限列表中的减少或减少?我在上面的例子中看到的问题是,最终列表的评估部分变得足够大以溢出堆.也许无限列表不是正确的范例.减少生成器,IO流或事件流会更有意义.在评估并用于修改状态后,不应保留该值.
在Python中生成随机字符串非常简单(例如Python熵显示).但是有没有任何Python项目,它会产生一些有点可读和可读的密码字符串?通过可读性,我的意思是不要将零和O都放在同一个字符串中,等等.我不在乎它是否有最大熵,只是比我可能选择的更好.:)
使用Django-auth应用程序(Django版本1.3),我想让我的登录页面转到https://mysite.com/login/.目前,我正在使用:
# urls.py
from django.contrib.auth.views import login
urlpatterns = patterns('', url(r'^login/$', login, name='login-view'),)
# navbar.html
<li id="nav-login"><a href="{% url login-view %}" ><b>Login</b></a></li>
Run Code Online (Sandbox Code Playgroud)
这很好用,但去了http://mysite.com/login/.
有什么方法可以告诉Django-auth在反转视图名称时使用什么前缀(https)?我已经阅读了整个手册页,但没有找到任何涵盖它的内容.或者也许某种方式告诉url标签转到https?
或者是手动指定整个URL的唯一选项?我希望不是:)鉴于Django到目前为止有多强大,我无法相信它不具备这种能力 - 我必须忽视它.:)