标签: wsgi

Django 自定义管理员 admin.site.register + admin.site.unregister 冲突 AlreadyRegistered + NotRegistered on 1st HTTP GET (Apache + mod WSGI)

在第一次 HTTP GET 期间(在重新加载守护进程模式下的 WSGI 之后),admin.site.unregister 抛出一个 NotRegistered 异常,但 admin.site.register 抛出一个 AlreadyRegistered 异常(catch-22?)但是,在随后的 HTTP GET 中,一切都加载得很好,没有错误。

设置:

  • 姜戈 1.3
  • 阿帕奇 2.2
  • CentOS

设置.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    #'django.contrib.sites', #(this didn't seem to make a difference)
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    'django.contrib.admindocs',
    'base',
    'sample',
    'reports',
    'south',
)
Run Code Online (Sandbox Code Playgroud)

模型.py:

from django.db import models
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import …
Run Code Online (Sandbox Code Playgroud)

python apache django mod-wsgi wsgi

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

写入并发日志文件

我在 apache2 上有一个 WSGI 应用程序,它以最简单的方式写入日志文件:

def log (msg):
    with open (LOGFILE, 'a') as f: f.write (msg)
Run Code Online (Sandbox Code Playgroud)

在我的沙箱环境中它运行良好,但我有点担心并发性。如果apache2运行各种线程,我是否需要担心并发问题?我的日志文件可能会被扰乱吗?log (msg)如果另一个线程已经在记录日志,调用可能会失败吗?如果是这种情况,我该如何预防呢?

编辑: 为了测试,我从两个 shell 同时运行两个脚本:

#! /usr/bin/python3.2

def log ():
    with open ('log', 'a') as f:
        f.write ('message from thread A\n')

while (True): log ()
Run Code Online (Sandbox Code Playgroud)

#! /usr/bin/python3.2

def log ():
    with open ('log', 'a') as f:
        f.write ('message from thread B\n')

while (True): log ()
Run Code Online (Sandbox Code Playgroud)

日志文件看起来不错,没有发生错误。我很幸运,或者从两个不同的线程写入同一个文件是否安全。文件系统是ext4。

python logging wsgi apache2

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

将列表传递给瓶子中的模板

我有一个列表,其中包含作为元组列表的帖子信息(列表由元组组成),但我面临着如何将其传递给瓶子中的模板的问题,我已经尝试了很多,并检查了 stackoverflow 中的大多数问题,我找不到一个好的且明确的问题。

这是我尝试过的:

@route('/v/:name')
def page_viwer(name):
    id=db.searchU('user', name)
    result=db.searchU_forG(id[0][0])
    if len(result)>0:#if we got posts 
        return template('v',post=result)
Run Code Online (Sandbox Code Playgroud)

这是v.tpl

<html>
%for post in res:
    %for id, title, dec, pic,not_needed in post:
        <h3>{{id}}</h3>
        <h3>{{title}}</h3>
        <h3>{{dec}}</h3>
        <h3>{{pic}}</h3>
        <br/>
%end
</html>
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我收到错误 500 ...当我检查日志时,原因是:

%for id, title, dec, pic in post: TypeError: 'int' object is not iterable

python template-engine wsgi list bottle

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

“未找到符号:__cg_jpeg_resync_to_restart”与 djangostack

我正在尝试将 Django 1.6.10-0 连接到以前在 1.5 上运行的项目。

在我的项目中编辑 wsgi.py 文件以包含项目路径后,我收到此错误:

mod_wsgi (pid=6805): Exception occurred processing WSGI script '/Users/Dreadfort/Documents/MyProject/project/wsgi.py'.
 Traceback (most recent call last):
   File "/Applications/djangostack-1.6.10-0/apps/django/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
     self.load_middleware()
   File "/Applications/djangostack-1.6.10-0/apps/django/lib/python2.7/site-packages/django/core/handlers/base.py", line 44, in load_middleware
     for middleware_path in settings.MIDDLEWARE_CLASSES:
   File "/Applications/djangostack-1.6.10-0/apps/django/lib/python2.7/site-packages/django/conf/__init__.py", line 54, in __getattr__
     self._setup(name)
   File "/Applications/djangostack-1.6.10-0/apps/django/lib/python2.7/site-packages/django/conf/__init__.py", line 49, in _setup
     self._wrapped = Settings(settings_module)
   File "/Applications/djangostack-1.6.10-0/apps/django/lib/python2.7/site-packages/django/conf/__init__.py", line 128, in __init__
     mod = importlib.import_module(self.SETTINGS_MODULE)
   File "/Applications/djangostack-1.6.10-0/apps/django/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
     __import__(name)
   File "/Users/Dreadfort/Documents/MyProject/project/__init__.py", line 5, in <module>
     from .celery import …
Run Code Online (Sandbox Code Playgroud)

python django wsgi bitnami osx-yosemite

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

为什么 gunicorn 直接解析 WSGI?

我们在nginx后面使用gunicorn的时候,总是需要proxy_pass请求给gunicorn。但是 Nginx 有一个 wsgi 模块,它允许它向 wsgi 应用服务器发送 wsgi 请求(uwsgi_pass),而且看起来 gunicorn 不能直接接受 wsgi 请求,它只是接受 HTTP 请求并将其转换为 wsgi 并调用 wsgi 应用程序。

gunicorn 是否支持直接接受 wsgi 请求?

如果不是,如果 Nginx 有一些需要发送到 wsgi 应用程序服务器的 wsgi env 参数,我该怎么办?

wsgi nginx gunicorn

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

无法连接到 WSGI 守护进程“wsgi”

正如之前在多个问题/答案中强调的那样,即这个这个我已经将我的配置WSGISocketPrefix/etc/httpd/run/wsgi

/etc/httpd/run 目录具有 root:apache 权限,创建的 sock 文件具有 apache:root 权限。

我面临的问题是 apache总是试图连接到比它应该寻找的少一个的袜子。示例袜子是/var/run/httpd/wsgi.1769.1.1.sock但 apache 寻找/var/run/httpd/wsgi.1769.0.1.sock

AFAIK 没有权限问题,问题在于 apache 正在查找的 WSGI 袜子号。我怎样才能克服这个问题?为什么sock-versionwsgi 和 apache 之间存在不匹配?

确切的日志行: (2)No such file or directory: [client A.B.C.D:57798] mod_wsgi (pid=1549): Unable to conn ect to WSGI daemon process 'wsgi' on '/etc/httpd/run/wsgi.1144.0.1.sock' after multiple attempts.

apache django mod-wsgi wsgi

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

使用扭曲的 Flask 部署

在flask doco 中,显示了在twisd 下部署flask 应用程序的以下描述。

twistd web --wsgi myproject.app
Run Code Online (Sandbox Code Playgroud)

我有一个看起来像这样的 foo.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)
Run Code Online (Sandbox Code Playgroud)

所以我希望能够像这样在扭曲下运行

twistd web --wsgi foo.app
Run Code Online (Sandbox Code Playgroud)

但twisdd 不喜欢那样(只是吐出帮助文本)。

我究竟做错了什么 ?

顺便说一句,万一我在 virtualenv 中运行它(我已经安装了flask和twisted)和当前目录,当我发出twisd命令包含 foo.py 。


编辑:我使用的扭曲版本是 18.7.0

我没有注意到(直到 Peter Gibson 的评论提示)在帮助文本出现后会出现消息“No such WSGI application:'foo.app'”。

python wsgi flask twistd

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

使用 requests-html 在不启动服务器的情况下测试 Flask 应用程序

我一直在使用 Flasktest_client对象来测试我的 Web 应用程序。我使用BeautifulSoup来解析其中一些调用的 HTML 输出。

现在我想尝试使用requests-html,但我不知道如何让它与 Flask 测试客户端一起工作。示例都使用请求包来获取响应,但 Werkzeug 测试客户端并没有进行实际的 HTTP 调用。据我所知,它设置了环境并只调用处理程序方法。

有没有办法使这项工作无需运行实际服务?

python wsgi werkzeug flask python-requests

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

金字塔:Ngi​​nx + Pserve还是Nginx + wsgi?

我正在开发一个即将完成的小型Pyramid应用程序,因此现在我开始考虑如何部署它。

大多数Pyramid部署教程建议使用nginx作为pserve的反向代理。由于Pyramid应用程序只是wsgi应用程序,因此我也可以将其部署为nginx + wsgi,而无需使用反向代理。我想后者会有些困难,因为我对所有这些东西都是全新的,但是从直观上讲它应该能更快地工作。

所以问题是:nginx + pserve和nginx + wsgi部署方案之间是否有相当大的性能差异?

python wsgi nginx pyramid

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

你应该用wsgi部署django吗?

你需要用wsgi部署django吗?我在Docker实例上运行Django,看起来通常建议的解决方案只是使用Django的开发服务器,即命令python manage.py runserver.什么时候需要wsgi这样的Web服务器 - 在这种情况下,在容器化的应用程序中,django开发服务器是否足以用于生产应用程序?

python django networking wsgi server

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