使Django/admin/urls只能访问localhost的最简单方法是什么?
我想到的选项:
有标准方法吗?
谢谢!
让我们执行脚本
python b.wsgi
Run Code Online (Sandbox Code Playgroud)
结果是:
None
None
Run Code Online (Sandbox Code Playgroud)
这是问题,这是完整的脚本 b.wsgi
aaa = """
From root@a1.local.tld Thu Jul 25 19:28:59 2013
Received: from a1.local.tld (localhost [127.0.0.1])
by a1.local.tld (8.14.4/8.14.4) with ESMTP id r6Q2SxeQ003866
for <ooo@a1.local.tld>; Thu, 25 Jul 2013 19:28:59 -0700
Received: (from root@localhost)
by a1.local.tld (8.14.4/8.14.4/Submit) id r6Q2Sxbh003865;
Thu, 25 Jul 2013 19:28:59 -0700
From: root@a1.local.tld
Subject: oooooooooooooooo
To: ooo@a1.local.tld
Cc:
X-Originating-IP: 192.168.15.127
X-Mailer: Webmin 1.420
Message-Id: <1374805739.3861@a1>
Date: Thu, 25 Jul 2013 19:28:59 -0700 (PDT)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="bound1374805739"
This …Run Code Online (Sandbox Code Playgroud) 使用此代码,我总是丢失消息:
def publish(frontend_url, message):
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.connect(frontend_url)
socket.send(message)
Run Code Online (Sandbox Code Playgroud)
但是,如果我引入一个短睡眠(),我可以得到消息:
def publish(frontend_url, message):
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.connect(frontend_url)
time.sleep(0.1) # wait for the connection to be established
socket.send(message)
Run Code Online (Sandbox Code Playgroud)
有没有办法确保在调用 connect() 和 send() 之间不休眠的情况下传递消息?
恐怕我无法预测睡眠时长(网络延迟等)
更新:
上下文:我想将数据更新从Flask REST 应用程序发布到消息代理(例如,在资源创建/更新/删除时)。
目前,消息代理是使用 0mq FORWARDER 设备起草的
我知道 0mq 旨在抽象 TCP 套接字和消息传递的复杂性。
在连接长期存在的情况下,我可以使用它。但是,当在 gunicorn 或 uwsgi 等应用程序容器中运行我的 Flask 应用程序时,我有 N 个工作进程,我不能指望连接和进程是长期存在的。
据我了解,我应该使用真正的消息代理(如 RabbitMQ)并使用同步客户端在那里发布消息。
我param1=value1¶m2=¶m3=value3使用urllib.parse.parse_qs(python 3 wsgi应用程序)解析以下请求,但此函数返回仅带param1和param3键的dict .我可以使用什么功能来获得空param2?
我想将单个域用作多个烧瓶应用程序的临时环境,这些应用程序最终将在自己的域上运行.
就像是:
哪里:
要么:
入门应用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello from Flask!'
Run Code Online (Sandbox Code Playgroud)
WSGI Starter配置文件:
import sys
project_home = u'/home/path/sample1'
if project_home not in sys.path:
sys.path = [project_home] + sys.path
from app import app as application
Run Code Online (Sandbox Code Playgroud)
指的是:
http://flask.pocoo.org/docs/0.10/patterns/appdispatch/
我不知道在文档中给出的代码添加位置作为示例,以及create_app,default_app,get_user_for_prefix应该是什么样子.
注意:使用PythonAnywhere
解
Glenns输入后的WSGI配置文件:
import sys
# add your project directory to the sys.path
project_home = u'/home/path/app1'
if project_home not in sys.path:
sys.path = [project_home] + sys.path …Run Code Online (Sandbox Code Playgroud) 我在 Python 3 中有一个带有 pysimplesoap 的 SOAP 服务器。
代码
from wsgiref.simple_server import make_server
application = WSGISOAPHandler(dispatcher)
wsgid = make_server('', 8008, application)
wsgid.serve_forever()
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会出现以下错误。
错误
Traceback (most recent call last):
File "/usr/lib/python3.4/wsgiref/handlers.py", line 138, in run
self.finish_response()
File "/usr/lib/python3.4/wsgiref/handlers.py", line 180, in finish_response
self.write(data)
File "/usr/lib/python3.4/wsgiref/handlers.py", line 266, in write
"write() argument must be a bytes instance"
AssertionError: write() argument must be a bytes instance
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 curl 的 put 请求向本地服务器发出 put 请求:
curl -X PUT -H "Content-Type: application/json" -d '{"connid":"12"}' "127.0.0.1:8000/api/kill"
Run Code Online (Sandbox Code Playgroud)
我收到相同的回复:
'WSGIRequest' 对象没有属性 'PUT'
对于以下代码:
def kill(req):
conid = req.PUT['connid']
statusres = {}
if conid in state:
error[conid] = 'true'
statusres['status'] = 'ok'
else:
statusres['status'] = 'invalid connection Id : '+ conid
return JsonResponse(statusres)
Run Code Online (Sandbox Code Playgroud)
我@csrf_exempt之前也用过这个函数。
我正在编写一个 python 调试库,它在一个新线程中打开一个烧瓶服务器,并提供有关它正在运行的程序的信息。当被调试的程序不是 Web 服务器本身时,这很好用。但是,如果我尝试与另一个在调试模式下运行的 Flask 服务器同时运行它,事情就会中断。当我尝试访问第二台服务器时,结果在两台服务器之间交替。
下面是一个例子:
from flask.app import Flask
from threading import Thread
# app1 represents my debugging library
app1 = Flask('app1')
@app1.route('/')
def foo():
return '1'
Thread(target=lambda: app1.run(port=5001)).start()
# Cannot change code after here as I'm not the one writing it
app2 = Flask('app2')
@app2.route('/')
def bar():
return '2'
app2.run(debug=True, port=5002)
Run Code Online (Sandbox Code Playgroud)
现在,当我在浏览器中访问http://localhost:5002/时,结果可能是1或2不是始终为2.
使用multiprocessing.Process而不是Thread具有相同的结果。
这是如何发生的,我该如何避免?烧瓶/werkzeug/WSGI 是不可避免的吗?我喜欢 Flask 的简单性,理想情况下希望继续使用它。如果这是不可能的,那么我可以使用且不会干扰同时运行的任何其他 Web 服务器的最简单的库/框架是什么?如果可能,我还想使用线程而不是进程。
我正在构建一个 Flask Web 应用程序,并希望将其放在 github 存储库中。
我注意到在 .wsgi 文件中
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/hashchain/")
from hashchain import app as application
application.secret_key = 'super secret key'
Run Code Online (Sandbox Code Playgroud)
有一个 application.secret_key 用于加密...
我猜测将flask web应用程序放在github上的标准方法包括克隆整个flask应用程序文件夹而不是.wsgi文件?
这样,贡献者可以在他们自己的本地主机上以调试模式自由运行 Flask 以进一步开发它,如果他们真的想要可以将它部署到他们自己的服务器(但必须编写他们自己的 .wsgi 文件和配置在他们的控制下的服务器) )。
这是正确的思考方式吗?我猜如果我把 .wsgi 文件放在 github 上,它会是黑客的开放季节吗?
尝试使用本教程部署我的应用程序。有一个ModuleNotFoundError: No module named 'radio.wsgi'消息。
2019-08-21T08:08:21.409841+00:00 app[web.1]: __import__(module)
2019-08-21T08:08:21.409849+00:00 app[web.1]: ModuleNotFoundError: No module named 'radio.wsgi'
2019-08-21T08:08:21.409960+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [10] [INFO] Worker exiting (pid: 10)
2019-08-21T08:08:21.441211+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [4] [INFO] Shutting down: Master
2019-08-21T08:08:21.441415+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [4] [INFO] Reason: Worker failed to boot.
Run Code Online (Sandbox Code Playgroud)
在其他一些问题中人们推荐,python manage.py run_gunicorn但我有Unknown command: 'run_gunicorn'
简介:
web: gunicorn radio.wsgi --log-file -
Run Code Online (Sandbox Code Playgroud)
wsgi.py
2019-08-21T08:08:21.409841+00:00 app[web.1]: __import__(module)
2019-08-21T08:08:21.409849+00:00 app[web.1]: ModuleNotFoundError: No module named 'radio.wsgi'
2019-08-21T08:08:21.409960+00:00 app[web.1]: [2019-08-21 …Run Code Online (Sandbox Code Playgroud) wsgi ×10
python ×8
flask ×4
django ×3
python-3.x ×2
apache ×1
dispatch ×1
django-wsgi ×1
github ×1
heroku ×1
json ×1
mod-wsgi ×1
path ×1
put ×1
pysimplesoap ×1
python-2.7 ×1
python-3.2 ×1
pyzmq ×1
secret-key ×1
urllib ×1
werkzeug ×1
wsgiref ×1
zeromq ×1