我有这个HTML代码与多个inputs同名:
<input type="hidden" value="42" name="authors" />
<input type="hidden" value="13" name="authors" />
<input type="hidden" value="33" name="authors" />
Run Code Online (Sandbox Code Playgroud)
值的顺序很重要.HTML规范是否定义用户代理必须保留此顺序,如果是,那么常见(市场份额> 1%)浏览器是否遵循此定义?
如果有人知道WSGI,特别是Django是否保留了服务器端的订单,那么奖励积分:-)
谢谢!
我是sys管理员的新手,并且只配置了一个带有nginx(服务静态文件)和gunicorn作为Web服务器的VPS.
我最近一直在阅读其他不同的东西.我开始了解其他工具:
nginx:高性能HTTP服务器和反向代理,以及IMAP/POP3代理服务器
haproxy:高性能负载均衡器
varnish:缓存HTTP反向代理
gunicorn:python WSGI http服务器
uwsgi:另一个python WSGI服务器
我一直在阅读有关上述所有5种工具的内容,我对于哪一种用于何种目的感到困惑?有人可以用非专业人的方式向我解释一下,当一起使用时,每种工具的用途是什么,以及它们涉及哪些具体问题?
任何人都可以帮我在IIS 6上运行Flask应用程序吗?我曾尝试使用isapi-wsgi,但是当我访问虚拟目录地址时,我得到一个页面,上面写着"找不到指定的模块".还有其他选择吗?
下面是我为isapi-wsgi编写的Python脚本.在IIS管理器中创建了虚拟目录并且一切正常,但该站点无法正常工作.
from wof import app
import os
app.secret_key=os.urandom(24)
import isapi_wsgi
def __ExtensionFactory__():
return isapi_wsgi.ISAPISimpleHandler(app)
if __name__ == '__main__':
from isapi.install import *
params = ISAPIParameters()
sm = [ScriptMapParams(Extension="*", Flags=0)]
vd = VirtualDirParameters(Name="WOFPy_Sondes", Description="ISAPI-WSGI for WOFPY Sondes test", ScriptMaps=sm, ScriptMapUpdate="replace")
params.VirtualDirs = [vd]
HandleCommandLine(params)
Run Code Online (Sandbox Code Playgroud) 我已经尝试了好几天在Amazon Web Services的Elastic Beanstalk下设置Django.我认为我遇到的问题是这个问题:
ERROR - Your WSGIPath refers to a file that does not exist.
Run Code Online (Sandbox Code Playgroud)
我按照这里的教程进行了一直顺利,直到第6步结束,但是除了第5步#2的通用Elastic Beanstalk页面之外,我不能为我的生活展示任何东西.我跑的时候
./manage.py runserver
Run Code Online (Sandbox Code Playgroud)
在我的本地计算机上,一切正常,但我无法部署该页面.我首先尝试使用自己编写的小型Django网站.它没有用,所以我删除了我所做的一切并再次尝试,但是没有用,所以我删除了所有这些并再次尝试使用新的django安装.我尝试了很多次摆弄小东西,但我想我错过了一些重要的东西.
我添加了一个python.config文件,如本教程中所述.
这是我的文件结构:
-.git/
-.mysite/
-myapp/
-__init__.py
-models.py
-tests.py
-views.py
-mysite/
-__init__.py
-settings.py
-urls.py
-wsgi.py
-.ebextensions/
-python.config
-manage.py
-mysite.db
-requirements.txt
Run Code Online (Sandbox Code Playgroud)
来自我的settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mysite.db',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
这是python.config:
container_commands: 01_syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: …Run Code Online (Sandbox Code Playgroud) django wsgi amazon-web-services django-wsgi amazon-elastic-beanstalk
我读到了关于龙卷风的信息:
另一方面,如果您已经拥有一个WSGI应用程序并希望在快速的tornado.httpserver.HTTPServer上运行它,请使用tornado.wsgi.WSGIContainer进行包装.但你需要小心.由于您的原始应用程序没有为异步服务器做好准备,并且会进行大量的IO /计算,因此它会在生成响应时阻止其他请求(进一步的请求将被接受并缓冲,但排队等待以后处理).
而Guincorn说:
'用于UNIX的Python WSGI HTTP服务器.这是一个从Ruby的Unicorn项目移植的前叉工作者模型.
epoll或kqueue完成工作(没有主人/工人流程)?requests.get在处理程序的get/post函数中),这将阻止所有请求处理或仅阻止当前正在处理的请求?我想用Python做一些服务器端脚本.但是我有很多方法可以做到这一点.
它从自己动手的CGI方法开始,似乎以一些非常强大的框架结束,这些框架基本上可以完成所有工作.还有很多东西,比如web.py,Pyroxide和Django.
编辑:我还没有太多的网络编程经验.
我想避免解析参数URL等基本和繁琐的事情.
另一方面,虽然使用Ruby on Rails 在15分钟内创建的博客视频给我留下了深刻印象,但我意识到隐藏了数百个东西来自我 - 如果你需要立即编写一个有效的网络应用程序,这很酷,但对于真正了解魔术并不是那么好 - 这就是我现在所寻求的.
我终于得出结论,我再也不能仅仅希望正在进行的Py3k/WSGI 灾难问题能够很快得到解决,所以我需要做好准备继续前进.
不幸的是,我的可用选项看起来并不是很好:
当然有人在生产中在3.x上部署webapps.你使用什么网关接口,哪些模块/库,为什么?
我们有一个用金字塔制作的网络应用程序,并通过gunicorn + nginx提供服务.它适用于8个工作线程/进程
我们需要工作,我们选择了apscheduler.这是我们如何推出它
from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR
from apscheduler.scheduler import Scheduler
rerun_monitor = Scheduler()
rerun_monitor.start()
rerun_monitor.add_interval_job(job_to_be_run,\
seconds=JOB_INTERVAL)
Run Code Online (Sandbox Code Playgroud)
问题是gunicorn的所有工作进程都选择了调度程序.我们尝试实现文件锁,但它似乎不是一个足够好的解决方案.什么是最好的方法来确保在任何给定的时间只有一个工作进程选择预定的事件,没有其他线程选择到下一个JOB_INTERVAL?
如果我们决定稍后切换到apache2 + modwsgi,解决方案甚至需要使用mod_wsgi.它需要与作为服务员的单进程开发服务器一起工作.
我正面临OP所描述的相同问题,只需使用Django应用程序.我最有把握的是,如果原始问题,这个细节不会有太大变化.出于这个原因,为了获得更多的可见性,我还标记了这个问题django.
我有一个相当大的问题.
我很新的uwsgi和我不是100%确定如何调试这个问题,但我会给你我在哪里的信息.
我跑的时候 uwsgi reload
sudo service uwsgi reload
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
* Reloading app server(s) uwsgi
...fail!
Run Code Online (Sandbox Code Playgroud)
而已.我得到没有别的.
我一直在寻找在堆栈溢出小时,并没有发现任何东西,正好概括了这个问题,我发现很多事情要做人民的.ini文件,但我知道,因为通过手动运行我的网站时,那不是我的问题,uwsgi --ini MYINI.ini然后对其进行访问它运行得很好,问题在于uWSGI,我不知道如何找到这个解决方案.我查看了文档,但在这个特定错误上找不到任何内容.
如果这里这个利益人是我uwsgi-server.conf文件
description "uWSGI Emperor"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
env LOGTO=/var/log/uwsgi.log
env BINPATH=/usr/local/bin/uwsgi
exec $BINPATH --emperor /etc/uwsgi/vassals --logto $LOGTO
Run Code Online (Sandbox Code Playgroud)
任何见解将不胜感激.我觉得我失去了一些东西,但这么新的与uWSGI我甚至不能猜测它可能是什么,对我来说这一切看起来OK按文档.
如果您需要在我设置的任何详细信息,请只问.
我一直在修改 Flask 和 FastAPI 以了解它如何充当服务器。
我想知道的主要事情之一是 Flask 和 FastAPI 如何处理来自多个客户端的多个请求。
特别是当代码有效率问题时(数据库查询时间长)。
所以,我尝试制作一个简单的代码来理解这个问题。
代码很简单,当客户端访问路由时,应用程序休眠10秒才返回结果。
它看起来像这样:
快速API
import uvicorn
from fastapi import FastAPI
from time import sleep
app = FastAPI()
@app.get('/')
async def root():
print('Sleeping for 10')
sleep(10)
print('Awake')
return {'message': 'hello'}
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
Run Code Online (Sandbox Code Playgroud)
烧瓶
from flask import Flask
from flask_restful import Resource, Api
from time import sleep
app = Flask(__name__)
api = Api(app)
class Root(Resource):
def get(self):
print('Sleeping for 10')
sleep(10)
print('Awake')
return {'message': 'hello'}
api.add_resource(Root, …Run Code Online (Sandbox Code Playgroud) wsgi ×10
python ×6
django ×3
flask ×2
gunicorn ×2
uwsgi ×2
apscheduler ×1
asgi ×1
cgi ×1
django-wsgi ×1
fastapi ×1
fastcgi ×1
frameworks ×1
haproxy ×1
html ×1
http ×1
iis-6 ×1
isapi-wsgi ×1
nginx ×1
pyramid ×1
python-3.x ×1
tornado ×1