1. 程式人生 > >詳細解讀Python的web.py框架下的application.py模組

詳細解讀Python的web.py框架下的application.py模組

文章出處:http://www.jb51.net/article/65307.htm

本文主要分析的是web.py庫的application.py這個模組中的程式碼。總的來說,這個模組主要實現了WSGI相容的介面,以便應用程式能夠被WSGI應用伺服器呼叫。WSGI是Web Server Gateway Interface的縮寫,具體細節可以檢視WSGI的WIKI頁面
介面的使用
使用web.py自帶的HTTP Server

下面這個例子來自官方文件的Hello World,這個程式碼一般是應用入口的程式碼:

?
1 2 3 4 5 6 7 8 9 10 11 import web urls = ("/.*", "hello") app = web.application(urls, globals()) class hello: def GET(self): return 'Hello, world!' if __name__ == "__main__": app.run()

上面的例子描述了一個web.py應用最基本的組成元素:

  •     URL路由表
  •     一個web.application例項app
  •     呼叫app.run()

其中,app.run()的呼叫是初始化各種WCGI介面,並啟動一個內建的HTTP伺服器和這些介面對接,程式碼如下:

?
1 2 def run(self, *middleware): return wsgi.runwsgi(self.wsgifunc(*middleware))

與WSGI應用伺服器對接

如果你的應用要與WSGI應用伺服器對接,比如uWSGI,gunicorn等,那麼應用入口的程式碼就要換一種寫法了:

?
1 2 3 4 5 6 7 8 9

相關推薦

詳細解讀Python的web.py框架application.py模組

文章出處:http://www.jb51.net/article/65307.htm 本文主要分析的是web.py庫的application.py這個模組中的程式碼。總的來說,這個模組主要實現了WSGI相容的介面,以便應用程式能夠被WSGI應用伺服器呼叫。WSG

Linux擴充套件PHP的Redis模組,以及Laravel框架擴充套件Redis模組

PHP的redis模組 2解壓 tar -zxvf redis-3.1.2.tgz 3進入redis-3.1.2目錄中 4使用phpize編碼 /usr/local/php7/bin/phpize(此處若是沒有,需要自己去下載更新一下) 5編譯./c

aws實例部署flask報錯script-timed-out-before-returning-headers-application-py

result 鎖定 Owner 廣告 book 超時 task script 應用 來源:http://www.aisir.cn/2017/07/15/aws實例部署flask報錯script-timed-out-before-returning-headers-appli

Python引用(import)文件夾py文件的方法

.py 方法 net 裏的 tle 無法 報錯 class 官方文檔 Python的import包含文件功能就跟PHP的include類似,但更確切的說應該更像是PHP中的require,因為Python裏的import只要目標不存在就報錯程序無法往下執行。要包含目錄裏的文

djangomodels.py數據庫同步操作技巧

app 技巧 修改 wmi 終極 del 名稱 .py 認識 一、認識一個目錄:目錄名:migrations作用:用來存放通過makemigrations命令生成的數據庫腳本,不熟悉的情況下,裏面生成的腳本不要輕易修改。app目錄下必要有migrations的目錄且該目錄下

day12_框架一main.py代碼

amp lac 執行 次數 生成 span 代碼 body req import timefrom lib import toolsfrom lib import reportfrom lib import sendmailfrom conf.settings import

day12_框架一report.py代碼

ros javascrip microsoft report port doc UNC ica table import osimport timefrom conf.settings import REPORT_PATHclass HtmlReport(object):

day12_框架一settings.py代碼

pass os.path use SM 端口 框架 開發環境 cas gpo import osBASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))REPORT_PATH = os.p

day12_框架一sendmail.py代碼

ati () def lena sof pat 郵件標題 main read import smtplib,osfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipar

day12_框架二tools.py代碼

t_sql from fetchall ngs host 代碼 tools 自動 self. import pymysqlimport redisimport requestsfrom conf.settings import MYSQL_INFO,REDIS_INFOfr

python導入其他文件夾的.py文件

imp 分享 png AD rar AR app path 文件 想在globalpararm中導入read_config中的類 import syssys.path.append(‘..‘)from common.read_config import Read_Con

Nginx系列-7.配置Nginx使用uwsgi支持web.py框架

Linux Nginx web.py uwsgi Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 目錄 - Nginx系列 Nginx系列-1.Linux下安裝Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架構 Nginx

爬蟲Scrapy框架的setting.py檔案詳解

  # -*- coding: utf-8 -*-   # Scrapy settings for demo1 project # # For simplicity, this file contains only setting

pythonweb簡單框架中的application

# 根據不同的路徑返回不同的網頁 # 讓我們的入口函式讀起來像目錄 # 一個功能一個函式 import re import pymysql from pymysql import connect # 定義一個空的字典 url_dict = dict() # flask

簡單而直接的Python web 框架:web.py

web.py 是一個Python 的web 框架,它簡單而且功能強大。web.py 是公開的,無論用於什麼用途都是沒有限制的。而且相當的小巧,應當歸屬於輕量級的web 框架。但這並不影響web.py 的強大,而且使用起來很簡單、很直接。

JBPM4.4業務流程管理框架詳細解讀

public class ProcessTest { private static ProcessEngine processEngine = Configuration.getProcessEngine(); @Test public void testProcess() throws Excep

web.py原始碼分析: application

本文主要分析的是web.py庫的 application.py 這個模組中的程式碼。總的來說, 這個模組主要實現了WSGI相容的介面,以便應用程式能夠被WSGI應用伺服器呼叫 。WSGI是 Web Server Gat

python編譯py成pyc和pyo

其實很簡單, 用 python -m py_compile file.py python -m py_compile /root/src/{file1,file2}.py 編譯成pyc檔案。 也可以寫份指令碼來做這事: Code: import py_compile  py_compile.comp

py-faster-rcnn原始碼解讀系列(四)——anchor_target_layer.py

本文介紹了在solver中出現的用python定義的layer,顧名思義,該layer主要功能是產生anchor,並對anchor進行評分等操作,詳細見程式碼註釋。 class AnchorTargetLayer(caffe.Layer): """ As

python在Windows將.py轉換成.exe檔案

到https://codeload.github.com/pyinstaller/pyinstaller/zip/develop下載pyinstaller-develop.zip 隨便解壓到資料夾裡,