我使用Heroku来托管带有postgres后端的Django Web应用程序.我现在正在寻求将此Web应用程序迁移到Azure,充分利用了Azure最近提供的大量优势.
但我对一件事情感到困惑:我如何用postgresql作为数据库在Azure上创建一个Django网站?我成功创建了一个Django网站,将它连接到git,但我似乎无法将它的DB更改为postgresql.
因此,当我这样做时git push azure master
,我得到错误:命令python setup.py egg_info失败,错误代码1在D:\ home\site\wwwroot\env\build\psycopg2它在psycopg2(postgresql)上失败.
其次,一旦我在Azure Web App上成功安装postgresql,我就需要调整它的postgresql.conf文件来调整设置(默认值太低).我该怎么办?
该文档仅讨论如何为使用Linux的Azure VM安装PG,而不是Azure Web App:https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-postgresql/
我已经将nginx设置为反向代理,背景为gunicorn。这个网络服务器设置提供了我的Django应用程序,该应用程序具有一个postgresql后端。整个设置托管在两台Ubuntu计算机上(一个是应用程序计算机,另一个是DB计算机)。
我仅通过gunicorn测试了此设置,没有使用nginx。工作完美。接下来将其投入生产,我在gunicorn前面添加了nginx反向代理。我立即遇到令人沮丧的错误:inet类型的无效输入语法:“”(当用户尝试登录我的Django应用时出现)
登录到我的应用程序的用户的IP地址保存在会话表中;Django自行完成。现在,众所周知的事实是Postgresql要求所有客户端IP都属于INET类(某些其他DB也允许字符串IP,但不允许postgres)。INET类型不允许“”(即空)值,而是为inet类型“”抛出错误的无效输入语法。
换句话说,我的nginx反向代理未将其值发送REMOTE_ADDR
到Django应用。单独使用gunicorn可以正确设置该值(因此一切正常)。我如何让nginx 在Django的request.META中将$remote_addr
值传递REMOTE_ADDR
给?
我已经尝试proto_set_header REMOTE_ADDR $remote_addr;
在location
/ etc / nginx / sites-avaialble / myproject文件中的块中添加该文件。它不起作用- HTTP_REMOTE_ADDR
稍后我可以在request.META中看到一个值,但REMOTE_ADDR
仍为''。
那么,如何在Django的request.META中设置REMOTE_ADDR(即客户端的IP地址)字段?也许我可以通过gunicorn明确地传递它?有人提到我应该在数据库端处理它-我不确定该怎么做?我应该编辑pg_hba.conf还是postgresql.conf之类的东西吗?我已经查看了这些文件,没有选项可以记录“允许IP的空值”。而且,我宁愿将$ remote_addr中的任何值传递给Django,而不是让所有已登录用户的IP为空。
而且不要忘了,如果我仅使用gunicorn,那么在Django的请求中,REMOTE_ADDR就会正确设置。所以我的猜测是问题出在我如何通过nginx传递它。
请帮忙!如果需要,可以随时询问更多信息。
/ etc / nginx / sites-available / myproject:
server {
listen 80;
server_name example.cloudapp.net;
charset utf-8;
underscores_in_headers on;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/mhb11/folder/myproject;
}
location / …
Run Code Online (Sandbox Code Playgroud) 我是第一次尝试大熊猫。我有一个包含两列的数据框:user_id
和string
。每个user_id可能有几个字符串,因此多次出现在数据帧中。我想从中得出另一个数据框;仅user_ids
列出strings
与它们相关联的至少2个或更多的那些。
我尝试了一下df[df['user_id'].value_counts()> 1]
,我认为这是执行此操作的标准方法,但是它产生了IndexingError: Unalignable boolean Series key provided
。有人可以弄清楚我的概念并提供正确的选择吗?
我正在Django创建一个分类广告网站.单一视图功能可处理全球列表,城市列表,仅限易货的全球列表以及仅限易货的城市列表.这个观点叫做ads
.
url模式按以下顺序编写(请注意,每个模式都有一个唯一的名称,尽管它与同一ads
视图相关联):
urlpatterns = patterns('',
url(r'^buy_and_sell/$', ads,name='classified_listing'),
url(r'^buy_and_sell/barter/$', ads,name='barter_classified_listing'),
url(r'^buy_and_sell/barter/(?P<city>[\w.@+-]+)/$', ads,name='city_barter_classified_listing'),
url(r'^buy_and_sell/(?P<city>[\w.@+-]+)/$', ads,name='city_classified_listing'),
)
Run Code Online (Sandbox Code Playgroud)
问题是,当我点击classified_listing
上面列表中命名的url时,函数ads
会被调用两次.也就是我在终端中看到的内容:
[14/Jul/2017 14:31:08] "GET /buy_and_sell/ HTTP/1.1" 200 53758
[14/Jul/2017 14:31:08] "GET /buy_and_sell/None/ HTTP/1.1" 200 32882
Run Code Online (Sandbox Code Playgroud)
这意味着加倍处理.我认为urls.py
返回匹配的第一个url模式.我做错了什么,解决这个问题的最佳方法是什么?所有其他调用按预期btw工作(即仅一次).
注意:如果我错过了什么,请询问更多信息.
了解这些类型的出现的很好的解释:https://groups.google.com/d/msg/django-users/CRMMYWix_60/KEIkguUcqxYJ
在Django中经过一定时间后,是否可以自动重定向(或刷新)模板(或更好的模板:它是基础视图)?例如通过使用重定向视图或类似的东西?一个例子会很好。
本质上,我需要近似<meta http-equiv="refresh" content="60;url here">
,但是在Django中。当然,我确切地知道HTML中的meta refresh标签是如何工作的-但这个问题与之无关(或与使用JS达到相同的效果)。该标签有其自身的问题,例如,它在Opera Mini(对我的听众来说是至关重要的浏览器)中不起作用。
有没有办法从 Django 视图中重定向到另一个网站?我试过了return redirect("www.google.com")
,但这不起作用。
根据设计,在任何Django应用程序中获取用户密码是不可能的.
我正在change password
为我的Django应用程序实现一个功能,其中一个要求是确保用户不会保留与之前的密码相同的新密码.
我不能在这里进行字符串比较,那么在这种情况下,最佳模式是什么?
这就是我的想法:访问我的change password
功能需要重新验证(即用户必须再次输入传递).我可以想象在此时将密码字符串保存在会话变量中(例如session.request['old_password']
),然后将此会话变量与用户设置的新密码的字符串进行比较?这种模式有任何安全问题吗?
我正在查看 Redis 为 Web 应用程序备份的 rdb 文件。有 4 个这样的文件(用于 4 个不同的 redis 服务器同时工作),大小为:13G + 1.6G + 66M + 14M = ~15G
然而,这 4 个实例似乎正在占用43.8GB
内存(根据新遗物)。为什么redis数据在mem和disk中占用的空间相差这么大?可能是配置错误,问题是否有帮助?
我创建了一个 SVG sprite 表,现在正在研究在 Django 模板中使用它的各种方法。
最简单的方法是:
templates/
(例如templates/svg_spritesheet.svg
){% include "svg_spritesheet.svg" %}
<svg><use xlink:href="#my_svg"></use></svg>
这对我有用。但这种方法存在操作上的缺陷。
例如:我通常将静态资源存放在{{ STATIC_URL }}
. 这对于组织目的来说更好。其次,我对{{ STATIC_URL }}
. 不过,我的文件夹没有使用此类缓存/templates
。
因此,很自然地,在我看来,如果我将 SVG spritesheet 停放在 处会更好{{ STATIC_URL }}
。但是一旦我这样做了,如何将它包含在我的 Django 模板中呢?
以下方法均无效:
{% include 'static/svg_spritesheet.svg' %}
{% include '{{ STATIC_URL }}svg_spritesheet.svg' %}
<object type="image/svg+xml" data="{{ STATIC_URL }}svg_spritesheet.svg"></object>
<link type="image/svg+xml" href="{{ STATIC_URL }}svg_spritesheet.svg">
专家能否给出一个说明性示例,说明如何使用放置在 处的 SVG 精灵表{{ STATIC_URL }}
?提前致谢(如果有必要,我正在使用Django …
我有一个 Django 应用程序,用户可以在其中上传视频(通过 html5 标签播放video
)。为了处理用户无法播放视频的极端情况,我为他们提供了下载视频的选项。
为此,我正在编写 JS,确保每当 asrc
未加载时都会出现“下载”按钮。看一下:http://plnkr.co/edit/o8YFZNaEhpJMg4YPhZCO ?p=preview
问题是我的 JS 驻留在其中<head></head>
,并且它需要能够访问我将在页面上显示的所有视频。
通常,我将视频对象作为 an 传递object_list
,然后进行迭代(通过分页生成ListView
)。但这一切都发生在body
of模板中。
我如何才能访问> 以便我共享的 JS 片段可以利用源代码(我已经从 base.html 继承context[object_list]
)?其次,如何确保只将页面中的视频源传递到我的 JS 片段?<head
<head>
有人能给我一个说明性的例子来解决这个问题吗?
我有一个像这样的词典列表:
[{'a':'21'},{},{'b':20'},{'c':'89'},{}]
Run Code Online (Sandbox Code Playgroud)
清除此列表中空字典的最有效方法是什么,最终结果为:
[{'a':'21'},{'b':'20'},{'c':'89'}]
Run Code Online (Sandbox Code Playgroud)
我尝试着:
new_list_of_dictionaries = []
for dictionary in list_of_dictionaries:
if dictionary:
new_list_of_dictionaries.append(dictionary)
return new_list_of_dictionaries
Run Code Online (Sandbox Code Playgroud)
我不认为这可以用O(1)或其他东西来完成?
django ×8
python ×5
django-views ×2
postgresql ×2
azure ×1
dictionary ×1
django-urls ×1
heroku ×1
list ×1
nginx ×1
pandas ×1
proxy ×1
redis ×1
svg ×1