wsgi

Django WSGI Error:class.__dict__ not accessible in restricted mode

蓝咒 提交于 2020-03-06 05:51:32
一、问题 今天网站出了一个错误: RuntimeError at /index.html class.__dict__ not accessible in restricted mode 二、原因 用了两次WSGIScriptAlias,类似于: WSGIScriptAlias /my_app /home/myuser/myapp/wsgi_scripts/deployment.wsgi WSGIScriptAlias /my_app_demo /home/myuser/myapp/wsgi_scripts/deployment.wsgi 导致运行时报错:RuntimeError: class.__dict__ not accessible in restricted mode 有两个程序都要用相同的资源,先运行的程序占用了必要资源,导致随后的程序拿不到资源而报错。 我的情况是因为给同一个app配置两个域名,用了两个<VirtualHost>,同样就用了两次WSGIScriptAlias。 三、解决办法 在apache2的配置里加一个配置项(在虚拟主机配置之前添加) WSGIApplicationGroup %{GLOBAL} 然后重启apache服务。 原因是一般情况,一个wsgi app可以运行在单独的python解释器里

CentOS71611部署Django

偶尔善良 提交于 2020-03-06 05:47:39
web.conf <VirtualHost *:80> WSGIScriptAlias / /var/www/datacn/datacn/wsgi.py Alias /static/ /var/www/datacn/static/ ServerName 192.168.1.49 #ServerName example.com #ServerAlias www.example.com <Directory /var/www/datacn/static> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <Directory /var/www/datacn/> Require all granted </Directory> ErrorLog /etc/httpd/logs/datacn.error.log LogLevel warn </VirtualHost> 升级pip 因为python3.5自带pip,setuptools /usr/python3.5/bin/pip3 install --upgrade pip ln -s /usr/python3.5/bin/pip3 /usr/bin/pip3 参考: http://www.cnblogs.com

【python web开发知识点整理2】- Python Web基础

放肆的年华 提交于 2020-03-03 18:54:47
【python web开发知识点整理1】- Python基础 【python web开发知识点整理2】- Python Web基础 【python web开发知识点整理3】- 容器基础 【python web开发知识点整理4】- 数据库基础 【python web开发知识点整理5】- Linux基础 【python web开发知识点整理6】- 设计模式 2. Python Web基础 2.1. django、flask、tornado框架的比较? 2.1.1. Django: Python 界最全能的 web 开发框架,battery-include 各种功能完备,可维护性和开发速度一级棒。常有人说 Django 慢,其实主要慢在 Django ORM 与数据库的交互上,所以是否选用 Django,取决于项目对数据库交互的要求以及各种优化。而对于 Django 的同步特性导致吞吐量小的问题,其实可以通过 Celery 等解决,倒不是一个根本问题。 Django 的项目代表:Instagram,Guardian。 2.1.2. Tornado: 天生异步,性能强悍是 Tornado 的名片,然而 Tornado 相比 Django 是较为原始的框架,诸多内容需要自己去处理。当然,随着项目越来越大,框架能够提供的功能占比越来越小,更多的内容需要团队自己去实现,而大项目往往需要性能的保证

Linux随笔 - vi/vim 编辑器显示行号

怎甘沉沦 提交于 2020-02-27 14:35:19
【前置条件】 创建1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git。创建demo参照: 创建一个flask api-demo(响应体显示中文) git地址:https://github.com/wangju003/flaskDemo.git 先在本地试试用gunicorn启动falsk 在terminal中执行gunicorn命令通过wsgi文件启动flask: gunicorn -w 4 -b 127.0.0.1:5000 wsgi:application 启动效果: 通过git将demo clone至centOS,项目目录建议放在 /home/www/(放在哪里不必纠结,因为最终会通过jenkins自动布署Job,所以项目会存放在/.jenkins目录下。这里只做测试gunicorn+nginx启动falsk) 【正式配置】 环境:centOS7 tips:如果安装其它环境,需要java环境,不需要特别安装jdk,使用自带的openJDK就可以。openJDK不能满足条件时,再安装jdk,且无须自自己配置环境变量(配置过,有印象是这样的) step1:安装python3,pip3,python虚拟环境,我这些在之前环境布署之已经安装好,这里不再缀述。 具体搭建过程,参照: centOS安装python3 以及解决

django中设置系统环境变量

假装没事ソ 提交于 2020-02-27 02:32:24
需求: 由于系统限制,需要在django的逻辑代码中设置系统环境变量.最开始使用 os.environ['环境变量名称']='环境变量值' 却一直都失败(排除了这种方法在非django的python项目中是正常的).最开排查发现需要再django中设置才可以.具体代码如下: """ WSGI config for WorkPlatFormApi project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "WorkPlatFormApi.settings") os.environ.setdefault("GRPC_PROXY_USE_TLS", "0") os.environ.setdefault("GRPC_PROXY_PORT", "3333")

尝试用tornado部署django

主宰稳场 提交于 2020-02-26 18:17:51
1 import os 2 from tornado.options import options, define 3 from tornado import httpserver 4 from tornado.ioloop import IOLoop 5 from tornado import wsgi 6 from django.core.wsgi import get_wsgi_application 7 8 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_dev.settings') 9 10 application = get_wsgi_application() 11 12 define('port', 8001, type=int) 13 14 if __name__ == '__main__': 15 options.parse_command_line() 16 app = wsgi.WSGIContainer(application) 17 http_server = httpserver.HTTPServer(app, xheaders=True) 18 http_server.listen(options.port) 19 IOLoop.instance().start() 访问浏览器 来源:

动手实现web框架

你说的曾经没有我的故事 提交于 2020-02-26 06:36:44
后端开发中,我们经常使用web框架来实现各种应用,比如python中的flask,django等,go语言中的gin等。web框架提供了很多现成的工具,大大加快了开发速度。这次,我们将动手实现自己的一个web框架。 当我们在浏览器打开链接发起请求之后发生了什么? http请求会经过WSGI服务器转发给web框架比如flask,flask处理请求并返回响应。WSGI就相当于中间商,处理客户端和框架之间的信息交换。那么WSGI到底是个啥? WSGI WSGI全称服务器网关接口,你想想,针对每一种服务器都需要实现对应的处理接口是件很麻烦的事,WSGI规定了统一的应用接口实现,具体来说,WSGI规定了application应该实现一个可调用的对象(函数,类,方法或者带__call__的实例),这个对象应该接受两个位置参数: 环境变量(比如header信息,状态码等) 回调函数(WSGI服务器负责),用来发送http状态和header等 同时,该对象需要返回可迭代的响应文本。 WSGI实现 为了充分理解WSGI,我们定义一个application,参数为environ和回调函数。 def app(environ, start_response): response_body = b"Hello, World!" status = "200 OK" #

mac osx 上面部署Django项目 apache+mysql+mod_wsgi

妖精的绣舞 提交于 2020-02-09 04:10:07
1、安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tools; 如果安装了Xcode,只需要“Preferences… > Downloads”,之后点击Command Line Tools安装按钮; 如果没有Xcode,去 https://developer.apple.com/downloads ,搜索Command Line Tools 下载安装 2、安装Homebrew( 后面需要用Homebrew安装mod_wsgi),在命令行窗口输入 ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)" 3、配置Apache Apache缺省安装在Mac osx中,osx 10.10 安装的apache版本是2.4,打开终端输入 sudo apachectl start 打开浏览器输入 http://localhost/ ,你能看到‘It Works’ 3.1 启用mod_php 在apache中启用mod_php cd /etc/apache2 sudo vi httpd.conf 不要注释这行(去掉前面的#号) # LoadModule php5_module libexec

web开发之http和wsgi

我们两清 提交于 2020-02-06 10:58:11
web开发也就是前端和后端,首先理解一下前后端分离技术,其实说的后端代码和前端代码分割开来。不然不利于前端和后端分别开发。 web开发 CS即客户端、服务端编程。传统的socket开发。 客户端、服务端之间需要使用socket,约定协议,版本(往往使用的协议是TCP或者UDP),指定地址和端口,就可以通信了。客服端、服务端传输数据,数据可以有一定的格式,双方必须先约定好。 BS编程,即Brower、Server开发。 brower浏览器,是一种特殊的 客户端,支持http(s)协议,能够通过URL向服务器发起请求,等待服务器返回HTML等数据,并在浏览器内可视化展示的程序。 SERVER,支持http协议,能够接受众多客户端发起的http协议请求,经过处理,将HTML等数据返回给浏览器。 本质上来说,BS是一种特殊的CS,即 客户端必须是一种支持http协议且能解析并渲染html的软件,服务端必须是能够接受多客户端http访问的服务器软件。 http协议底层是基于tcp协议实现。 BS开发分为两端开发。 客户端开发——或称前端开发。HTML(控制格式),css(控制样式),JavaScript等。 服务端开发, python有WSGI,django,flask,tornado等。 http协议 http协议是 无状态协议 。同一个客户端的两次请求之间并没有任何关系,从服务端角度来说

Flask—核心对象app初步理解

你说的曾经没有我的故事 提交于 2020-02-04 16:23:38
前言 flask的核心对象是Flask,它定义了flask框架对于http请求的整个处理逻辑。随着服务器被启动,app被创建并初始化,那么具体的过程是这样的呢? flask的核心程序就两个: 1.werkzegu(WSGI)库,封装了http、web通信等最关键的wsgi功能②Jinja2是Python下一个被广泛应用的模版引擎,方便了html模板的创建和使用。 2.而继承自werkzegu库的flask,web应用最核心的就是Flask类,这个类创建一个实例,作为整个web的后台程序主体。 来源: https://www.cnblogs.com/liuhaidon/p/12259711.html