小编Ros*_*sGK的帖子

Django Sites Framework初始设置

我对相当一维的Django实现很满意,但现在试图了解多站点共享内容的过程.

我已经阅读了Django Sites Framework以及关于该主题的许多帖子,但是我没有获得如何启动使用相同数据库的第二个站点的基础知识,而是将其自身表示为单独的域名.

我有一个非常开心的django网站,它包含一个在项目中运行的应用程序.

为了使用教程的说法,我开始了一个项目"mysite"

django-admin.py startproject mysite
Run Code Online (Sandbox Code Playgroud)

然后启动了一个应用程序"民意调查"

manage.py startapp polls
Run Code Online (Sandbox Code Playgroud)

问题1:网站框架是否假设每个网站都是单独的项目或单独的应用程序?

项目中的第二个应用程序'polls2'似乎有意义,但定义SITE_ID的settings.py似乎是一个整体项目的事情.有没有办法进行app-by-app设置?

与'mysite'相邻的第二个proj'mysite2'会给我一个第二个结构,它有自己的settings.py和一个单独的SITE_ID,但是然后似乎有一个严重违反"DRY"原则,因为我要复制许多元素相邻的姐妹项目.

Q2:听起来我需要将数据库模型(models.py)重新定义为多对多关系,以便在站点之间共享数据.这只会改变Django访问这些表的方式,还是需要重建现有站点的数据库?

您对实施网站框架的预期流程的指导将是非常好的,并且非常感谢.

python django frameworks sites

6
推荐指数
1
解决办法
2580
查看次数

Video.js - loadeddata事件永远不会触发

我正在将Video.js集成到一个项目中并遇到一些问题.

我在我的HTML中有:

<video id="vidView" class="video-js vjs-default-skin" width="320" height="320" 
   poster="/siteImages/Dummy.png" preload="auto">
   <source type="video/mp4" src="" \>
</video>
Run Code Online (Sandbox Code Playgroud)

在我的javascript中,我加载了一个源代码并设法播放它.

var vidPlayer = _V_("vidView");
vidPlayer.src({ type: "video/mp4", src: vidlink });

vidPlayer.play();
Run Code Online (Sandbox Code Playgroud)

只有以编程方式执行此操作才会遇到问题 - 源和播放的每一次加载都会起作用.我想象我在video.js准备好之前尝试播放,所以试图让听众在适当的时间发布游戏.

我发现某些事件根本不会发生.我无法从"loadedalldata"事件或"loadeddata"获得任何内容."loadstart"事件至少会触发,所以我将.play()命令放在那里.

vidPlayer.addEvent("loadstart", function(){ console.log("LOAD START Fired" );
  var myPlayer = this;
  myPlayer.play(); 
} );
Run Code Online (Sandbox Code Playgroud)

但它仍然不可靠.我在控制台上看到"试图恢复!"的消息.几次.它适用于一些视频,但有时会陷入困境.

我错过了让"loadeddata"事件发生的事情吗?

另外,相关Q - 我注意到文档说删除事件监听器的语法是:

myPlayer.removeEvent("eventName",myFunc);

是对的吗?看起来"myFunc"部分是多余的,我想知道这是文档中的复制/粘贴错误 还是正确的语法.

Thx提前.

javascript video video.js

4
推荐指数
1
解决办法
1万
查看次数

setvirtualenvproject不会发生目录更改

我正在拥抱VirtualEnvWrapper-就像我看到的很多。但是,当我尝试开始时,尝试与虚拟环境建立项目目录关联时没有看到预期的行为。

我已经安装了virtualenv和-wrapper。我可以创建环境,并且“ workon”可以很好地列出它们。我可以停用并愉快地管理它们。因此,所有功能似乎都起作用。我阅读了有关项目mgmt的文档。(也是一个很好的视频教程,并且在10:39解释了所需的proj关联行为)

当我尝试将工作目录与env关联时,它会接受我的cmds,但是当我“工作”该项目时,它不会将我放入指定的工作目录中。

例如,我有一个工作区〜/ Ross_code(并且我在.bashrc中将其设置为$ PROJECT_HOME)。里面有一个现有的项目文件夹〜/ Ross_code / superproj

所以现在我用

mkvirtualenv superp
Run Code Online (Sandbox Code Playgroud)

然后,转到现有项目目录,并将其与env关联:

cd ~/Ross_code/superproj 
setvirtualenvproject
Setting project for superp to /Users/ross/Ross_code/superproj
Run Code Online (Sandbox Code Playgroud)

然后我用“ deactivate”退出虚拟环境,并用

workon superp
Run Code Online (Sandbox Code Playgroud)

但是当前的工作目录仍然是我的〜/文件夹。
我检查了.project文件,该文件似乎已通过调用setvirtualenvproject进行了正确设置:

cdvirtualenv
more .project
/Users/ross/Ross_Code/superproj
Run Code Online (Sandbox Code Playgroud)

但是叫“ workon”永远不会让我陷入预期的位置。我以为env和项目目录可能需要同名,但这也没有任何区别。

知道为什么这么有吸引力的项目关联功能对我不起作用吗?

罗斯

稍后-更多信息:我还尝试使用mkproject命令,该命令应在$ PROJECT_HOME区域中为我的代码创建一个目录,并同时创建virtualenv并将它们彼此关联。

呼唤

mkproject junkproj
Run Code Online (Sandbox Code Playgroud)

实际上确实很好地创建了项目目录,并将我粘贴到virtualenv中,将cd粘贴到junkproj目录中。但是,当我取消激活然后再次“ workon junkproj”时,我仍然留在〜/目录中,而不是进入$ PROJECT_HOME中的项目目录

:(

python virtualenv virtualenvwrapper

3
推荐指数
1
解决办法
1176
查看次数

Django内的当前目录(os.getcwd)确定如何?

我正在使用Django 1.7而不是Python 2.7,并注意到我的生产主机(Webfaction)与开发机器(mac os x)之间的奇怪行为.

在我的开发机器上,当我通过cmds获取当前工作目录时

import os
dirspot = os.getcwd()
print dirspot
Run Code Online (Sandbox Code Playgroud)

我得到manage.py可执行文件的位置.当我在主机(webfaction)机器上执行此操作时,我会得到差异响应,具体取决于Django站点是否正在运行,而不是使用Django shell.

所以我的项目(和manage.py)位于:

/home/ross/webapps/djangoarea/myproj
Run Code Online (Sandbox Code Playgroud)

运行

python manage.py shell
Run Code Online (Sandbox Code Playgroud)

然后我得到上面的os.getcwd()

/home/ross/webapps/djangoarea/myproj
Run Code Online (Sandbox Code Playgroud)

但是,如果我将相同的命令放入views.py并运行我的项目,我会得到

/home/ross/
Run Code Online (Sandbox Code Playgroud)

我猜它可能与运行django的apache2和wsgi有关,而不是与manage.py调用它有关.有谁知道如何使这一点保持一致?

谢谢你,罗斯.

python django webfaction

3
推荐指数
1
解决办法
5878
查看次数

Django send_mail 在 1.7 中失败说没有 django_smtp_ssl

我正在将一些 Django 1.5 移植到 1.7,并且 send_mail() 调用对我来说失败了。我检查了文档,他们似乎建议我的语法仍然可以。

我尝试在 Django shell 模式下获取跟踪以在此处共享,但它仍然以相同的方式失败。我只是通过以下方式调用 send_mail() :

from django.core.mail import send_mail
send_mail('Test mail', 'This is a test', 'addr@site.ca' ['addr2@site.ca'], fail_silently=False)
Run Code Online (Sandbox Code Playgroud)

我得到了一个回溯

ImportError: No module named django_smtp_ssl
Run Code Online (Sandbox Code Playgroud)

现在,smtp_ssl 看起来像来自 smtplib。我尝试将 smtplib 与 send_mail 一起导入,但这也无济于事。

在我的 settings.py 中,我有通常的 PORT 和 HOST 详细信息和

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
Run Code Online (Sandbox Code Playgroud)

有什么建议?

-谢谢,罗斯。

python django

2
推荐指数
1
解决办法
2560
查看次数

多个Django版本 - virtualenv仍然是一个不错的选择?

我在Mac OSX上做python/django工作.我目前的项目的Python 2.7.

我已经设法避免需要几年的virtualenv,虽然在面对管理并发版本时它总是看起来是一个很好的解决方案.我渴望转向最新的Django版本(1.7),但不想破坏我在1.5以下的另一个项目.(它不公开,所以我不担心1.7之前的安全问题).

virtualenv仍然是启用两个并发环境的好方法,或者是否有一些当今孩子正在使用的更有用的东西.如果有更好的追求/学习方向,只是不想走下virtualenv路径.

python django macos virtualenv

1
推荐指数
1
解决办法
96
查看次数