python?web.py啟動https端口的方式
python web.py啟動https端口
web.py啟動https端口需要ssl證書,如果沒有ssl證書,那么可以通過如下方式生成。具體可參考文末的補(bǔ)充介紹。
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt sudo openssl rsa -in server.key -out server.key
示例程序如下所示:
# -*- coding: utf-8 -*-
"""
Created on Mon May 10 20:37:00 2021
@author: Administrator
"""
import web #web.py
urls = (
'/server' , 'server',
'/.*', 'notfound' #localhost:port/其他任意界面,訪問notfound類
)
class MyApplication(web.application):
def run(self, port=8080, *middleware):
func = self.wsgifunc(*middleware)
return web.httpserver.runsimple(func, ('0.0.0.0', port))
class server:
def __init__(self):
self.return_msg = {'errorCode': 0, 'msg': '系統(tǒng)正常!'}
def POST(self): #POST處理方式與GET一致
# content = web.input()
# print('收到消息:', content.key1, content.key2, content.key3)
x = web.input(myfile={})
print('xxx: ', x.keys())
return str(self.return_msg).replace('\'', '\"')
class notfound:
def GET(self):
print('--from notfound')
return '404 not found'
def POST(self):
print('--from notfound')
return '404 not found'
from cheroot.server import HTTPServer
from cheroot.ssl.builtin import BuiltinSSLAdapter
HTTPServer.ssl_adapter = BuiltinSSLAdapter(
certificate='server.crt',
private_key='server.key')
if __name__ == "__main__":
app = MyApplication(urls ,globals())
app.run(port=443)補(bǔ)充:python web.py 開啟https
參考英文網(wǎng)址http://heapkeeper-heap.github.io/hh/thread_1344.html
第一步:在shell中依次執(zhí)行以下命令,回答問題,設(shè)置密碼生成證書,包含三個文件***.crt 和***.key和***.csr,我分別重新命令為server.crt server.csr server.key
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
mv server.key myserver.key
mv server.crt myserver.crt開啟服務(wù),仿照下面代碼輸入即可,其中
from handle import Handle引入的我的方法模塊,在urls中調(diào)用(仿照微信公眾號開發(fā)的例子,具體如果新手可以自己看),同時保存的文件路徑根據(jù)自己的寫
import web
from handle import Handle
from web.wsgiserver import CherryPyWSGIServer
CherryPyWSGIServer.ssl_certificate = "/usr/ssl/server.crt"
CherryPyWSGIServer.ssl_private_key = "/usr/ssl/server.key"
urls = (
'/wx', 'Handle',
)
if __name__ == '__main__':
app = web.application(urls, globals())
app.run()然后開始服務(wù) sudo python main.py 443(其中443是端口號)
這個時候你需要輸入ssl之前自己設(shè)置的密碼,才能開啟,但是這樣導(dǎo)致不能后臺隱藏,
但是在生成證書的文件夾下,執(zhí)行sudo openssl rsa -in server.key -out server.key即可無密碼,這樣就可以后臺執(zhí)行
nohup python main.py 443 &
到此這篇關(guān)于python web.py啟動https端口的方式的文章就介紹到這了,更多相關(guān)python web.py啟動https端口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python3.x中安裝web.py步驟方法
- python web.py開發(fā)httpserver解決跨域問題實(shí)例解析
- 淺析Python的web.py框架中url的設(shè)定方法
- Linux系統(tǒng)上Nginx+Python的web.py與Django框架環(huán)境
- 詳細(xì)解讀Python的web.py框架下的application.py模塊
- 使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程
- 安裝Python的web.py框架并從hello world開始編程
- Python開發(fā)WebService系列教程之REST,web.py,eurasia,Django
- python web.py服務(wù)器與客戶端的實(shí)現(xiàn)示例
相關(guān)文章
實(shí)例詳解Python的進(jìn)程,線程和協(xié)程
這篇文章主要為大家詳細(xì)介紹了Python進(jìn)程,線程和協(xié)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
python3中替換python2中cmp函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了python3替換python2中cmp函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python遠(yuǎn)程方法調(diào)用實(shí)現(xiàn)過程解析
這篇文章主要介紹了Python遠(yuǎn)程方法調(diào)用實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
詳解Python中最常用的10個內(nèi)置函數(shù)
Python作為一種多用途編程語言,擁有豐富的內(nèi)置函數(shù)庫,這些函數(shù)可以極大地提高開發(fā)效率,本文將介紹Python中最常用的10個內(nèi)置函數(shù),我們將深入了解每個函數(shù),并提供示例代碼以幫助您更好地理解它們,需要的朋友可以參考下2023-11-11
Python 中獲取數(shù)組的子數(shù)組示例詳解
在 Python 中獲取一個數(shù)組的子數(shù)組時,可以使用切片操作,使用切片操作來獲取一個數(shù)組的一段連續(xù)的子數(shù)組,并且還可以使用一些方便的語法來簡化代碼,這篇文章主要介紹了如何在 Python 中獲取數(shù)組的子數(shù)組,需要的朋友可以參考下2023-05-05

