标签: webfaction

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
查看次数

找不到模板,在Webfaction上部署Pyramid

我正在尝试将我的webapp部署到Webfaction,基本示例正常工作,我在模板中有一个TemplateNotFound,它使用Jinja2扩展了一个基本模板.这是我的项目树:

/webapps
    /myapp
        development.ini
        production.ini
        /bin
    /theapp
        /Project
          setup.py
          /project
              __init__.py
              views.py
              /templates
                  base.jinja2
                  home.jinja2
              /static
Run Code Online (Sandbox Code Playgroud)

_ init _.py

config.include('pyramid_jinja2')
config.add_jinja2_search_path("templates")
Run Code Online (Sandbox Code Playgroud)

home.jinja2

{% extends "templates/base.jinja2" %}
Run Code Online (Sandbox Code Playgroud)

为了更清楚,该项目在本地工作我知道它是模板路径的东西,我不知道如何设置它,我尝试了许多不同的方式,无论如何这是追溯:

  File "..webapps/myapp/myapp/Project/project/templates/home.jinja2", line 1, in top-level template code
    {% extends "templates/base.jinja2" %}
  File "..webapps/myapp/lib/python2.7/site-packages/pyramid_jinja2-1.8-py2.7.egg/pyramid_jinja2/__init__.py", line 193, in get_source
    raise TemplateNotFound(name=ex.name, message=message)
TemplateNotFound: templates/base.jinja2; asset=..webapps/myapp/lib/python2.7/site-packages/Project-0.0-py2.7.egg/project/templates/base.jinja2; searchpath=['..webapps/myapp/lib/python2.7/site-packages/Project-0.0-py2.7.egg/project/templates']
Run Code Online (Sandbox Code Playgroud)

如果这是我的错误,请帮我设置模板的正确路径.

python webfaction pyramid

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

发件人地址被拒绝。Django + 网络派系电子邮件

我使用的代码是什么我上找到webfaction

EMAIL_HOST = 'smtp.webfaction.com'
EMAIL_HOST_USER = '<mailbox name>'
EMAIL_HOST_PASSWORD = '<mailbox pass>'
DEFAULT_FROM_EMAIL = '<email address>'
SERVER_EMAIL = '<email address>'
Run Code Online (Sandbox Code Playgroud)

我不断收到错误 SMTPRecipientsRefused

发件人地址被拒绝:需要完全合格的地址

python django webfaction

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

webfaction自动启动mongodb

我阅读了webfaction上的文档 并安装了mongodb的步骤

它说:

To start the database, run $HOME/webapps/application/mongodb-linux-architecture-version/bin/mongod --auth --dbpath $HOME/webapps/application/data/ --port number.
To stop MongoDB while it is running in the foreground, press Ctrl + C. 
Run Code Online (Sandbox Code Playgroud)

但我需要保持数据库始终运行
我该怎么办?
拜托我.谢谢

webfaction mongodb

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

如何加载测试Django API?

我正在对基于Django的Webfaction托管的服务器进行最后的润色。它具有REST API,可将内容传递到移动设备,每隔几分钟就会接受来自其他来源的POST请求。到目前为止,POST部分运行良好-到目前为止,它已经接受一周的数据了,没有重大问题。

但是,我担心发布移动应用程序时会发生什么-我希望有大量的用户,并且如果我的API无法处理所有GET请求的负载,我也不想遇到死机。

如何对Django API进行负载测试?在线上是否有工具可以一次模拟数百个GET请求,还是应该从头开始进行测试?

python django webfaction

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

Django Postgres 未从环境变量中读取数据库密码

我已经在 .bash_profile 文件中设置了数据库密码的环境变量,但 PostgreSQL 的 PASSWORD 字段没有读取相同的内容。另外,我可以成功打印 production.py 文件中的密码,但 PostgreSQL 不会使用相同的密码。

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': '********_db',
    'USER': '*****_name',
    'PASSWORD':os.environ.get("RS_DB_PWD"),
}
#The below will show the password correctly.
print(os.environ.get("RS_DB_PWD"))
Run Code Online (Sandbox Code Playgroud)

django postgresql webfaction

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

Django 查询集在生产环境中排序不正确

我有一个模型:

模型.py

class Person(models.Model):
    name = models.CharField(...)

    def __unicode__(self):
        return u'%s' % self.name

class Entity(models.Model):
    client = models.ForeignKey(Person)
Run Code Online (Sandbox Code Playgroud)

在我看来,我只想获取所有实体并按客户名称对它们进行排序:

视图.py

def all_entities(request):
    entities = Entity.objects.all().order_by('client')
    return render(request, 'template.html', {'entities': entities})
Run Code Online (Sandbox Code Playgroud)

所以我的模板只打印所有实体。

模板.html

<html>
{% for entity on entities %}
 {{ entity.client }}}
{% endfor %}
</html>
Run Code Online (Sandbox Code Playgroud)

发生的是,在我的开发 PC 中,一切都运行得很好,我得到了一个有序的客户端名称列表,但我无法理解的是,在 webfaction.com 上的生产服务器上,结果并不是像我的本地环境中那样按字母顺序排序。

我也在 shell 上测试了它,结果是相同的,不知何故 order_by('client') 在我的电脑上返回按字母顺序排序的列表,但在生产中不按字母顺序排序。

注意:两个环境都有 Postgres 并使用相同的后端。

谢谢

django sql-order-by django-models webfaction

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

恢复已删除的 Django 迁移

在我的生产服务器上,我不小心删除了我的应用程序之一中的迁移目录。多个人在开发该应用程序,因此在制作应用程序时,我们所做的就是在本地不进行任何迁移的情况下推送模型更改,然后在生产服务器上进行迁移,然后迁移到那里。我们这样做是因为我们过去遇到过迁移合并问题,并且认为这可能是一个很好的解决方案。由于没有迁移文件夹的本地副本,我担心它会永远消失。我的问题是这样的。我可以在Webfaction中访问phpPgAdmin,并且数据库有一个django_migrations表。我认为一种解决方案是找到最新的迁移,例如 0009_migration.py,而不是简单地重命名新的迁移文件 0010_migration.py 以便将来在该应用程序中进行任何模型更改时用于我的下一次迁移。这样我就可以简单地运行 migrate,并且只会考虑尚未运行的迁移 0010_migration.py。但出于好奇,是否有一些命令可以查看您的 PostgreSQL 数据库,并根据 django_migrations 表中文件中的迁移记录在您的应用程序迁移目录中创建迁移文件?

我想问这个问题的一个更简单的方法是“有没有办法将 django_migrations 表行逆向工程到migrations.py 文件中? ”这是我在 PostgreSQL 中的 django_migration 表行的图像,以及我希望该文件的外观就像,只是用不同的命令。

Django 迁移

class Migration(migrations.Migration):

    dependencies = [
        ('portfolio', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='project',
            name='contact_form',
            field=models.BooleanField(default=False),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

PostgreSQL django_migrations 表行 在此输入图像描述

migration django postgresql webfaction

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

快速使用 SFTP 发送 CSV 文件

我有一个由 webfaction 托管的服务器,我希望能够通过 FTP 或 SFTP 从我的应用程序发送 csv 文件。我发现许多应该有帮助的库,例如ConnectionKitNMSSHDLSFPTLxFTPRequest。然而,它们都在 Objective-C 中而不是 Swift 中,这使得它们很难在 Swift 4 中阅读、理解和实现。自从我找到了上传的 Swift 实现以来,我尝试实现 LXFTPRequest,这是我的代码:

    let fileName = "user-data.csv"
    guard let path = FileManager.default.urls(for: .documentDirectory, in:.userDomainMask).first else {fatalError(ErrorMessageStrings.couldntAccessDocs.rawValue)}
    let fileURL = path.appendingPathComponent(fileName)

    let folderLocation = "/home/path/"
    let uploadUrl = URL(string: "ftp://server-name.webfaction.com" + folderLocation)

    let request = LxFTPRequest.upload()
    request?.serverURL = uploadUrl
    request?.localFileURL = fileURL
    request?.username = "username"
    request?.password = "password"

    request?.successAction = { (resultClass, result) in
        print("File uploaded")
    } …
Run Code Online (Sandbox Code Playgroud)

sftp file-upload webfaction swift

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

如何在virtualenv中强制安装软件包?

尝试在系统中安装具有不同版本的django,它向我显示:

Installing collected packages: Django
Found existing installation: Django 1.7.11
Not uninstalling django at /home/user/lib/python2.7, outside environment /home/user/webapps/v2_dev/venv
Run Code Online (Sandbox Code Playgroud)

成功安装Django-1.8.19

但实际上有旧版本

尝试了不同的命令:

./venv/bin/pip install Django==1.8.11

pip install Django==1.8.11
Run Code Online (Sandbox Code Playgroud)

更新:安装软件包时,它显示:

The required version of setuptools (>=16.0) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U setuptools'.
(Currently using setuptools 3.1 (/home/user/lib/python2.7/setuptools-3.1-py2.7.egg))
Run Code Online (Sandbox Code Playgroud)

升级时:

venv/bin/pip install --upgrade setuptools
Requirement already up-to-date: setuptools in ./venv/lib/python2.7/site-packages (40.5.0)
Run Code Online (Sandbox Code Playgroud)

python django pip webfaction

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