亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

Python的Flask框架中SERVER_NAME域名項的配置教程

2020-10-29 19:34:38
字體:
來源:轉載
供稿:網友

Flask中的SERVER_NAME主要做兩件事:

  • 協助Flask在活動的請求(request)之外生成絕對URL(比如郵件中嵌入網站URL)
  • 用于子域名支持

很多人誤以為它可以做這兩件事之外的其它事情。

一、第一件事:絕對URL
我們知道,url_for默認情況下是生成相對URL,它有個參數_external,如果設置為真,則會生成一個絕對URL(就是HTTP開頭帶域名等信息的)。若不指定SERVER_NAME,默認使用當前活動的請求(request)來生成URL。

下面舉個例子演示一下:

# filename myapp.pyfrom flask import Flask, url_forapp = Flask(__name__)@app.route('/')def index(): return 'hello flask'@app.route('/test')def test(): return url_for('index', _external=True)if __name__ == '__main__': app.run(debug=True)

1.【情景1】通過瀏覽器訪問

app運行之后,在本地5000端口監聽。

(env) F:/tmp>python myapp.py * Running on http://127.0.0.1:5000/ * Restarting with reloader

若我們通過瀏覽器訪問http://127.0.0.1:5000/test,則返回的內容是:http://127.0.0.1:5000/。

若我們通過瀏覽器訪問http://localhost:5000/test,則返回的內容是:http://localhost:5000/。

可以看出,在未設置SERVER_NAME的情況下,url_for生成的絕對URL是依賴于請求的URL的。下面我們來看看不通過瀏覽器訪問的情況。

2.【情景2】非瀏覽器訪問

這個情景是指不存在request請求的情況。

我們通過Python Shell來模擬:

>>> from myapp import app>>> with app.app_context():... print url_for('index', _external=True)...
Traceback (most recent call last): File "<stdin>", line 2, in <module> File "F:/tmp/env/lib/site-packages/flask/helpers.py", line 287, in url_for raise RuntimeError('Application was not able to create a URL 'RuntimeError: Application was not able to create a URL adapter for request independent URL generation. You might be able to fix this by setting the SERVER_NAMEconfig variable.

上面的意思是說應用程序不能創建一個用于與request不相關的URL生成的URL適配器,可以通過設置SERVER_NAME來解決這個問題。

好,下面我們為SERVER_NAME設置一個值之后再試試:

>>> app.config['SERVER_NAME'] = 'example.com'>>> with app.app_context():... print url_for('index', _external=True)...
http://example.com/

PS: 一般SERVER_NAME設置為網站的域名。

在Flask-Mail相關的文章中有這么一段話:

許多Flask的擴展都是假定自己運行在一個活動的應用和請求上下文中,Flask-Mail的send函數使用到current_app這個上下文了,所以當mail.send()函數在一個線程中執行的時候需要人為的創建一個上下文,所有在send_async_email中使用了app.app_context()來創建一個上下文。

因此,若要生成不依賴于request的絕對URL(比如異步發送郵件時在郵件中生成網站某個頁面的URL),就必須要設置SERVER_NAME。

二、第二件事:子域名支持
SERVER_NAME鍵是用于子域名支持。因為 Flask 在得知現有服務器名之前不能猜測出子域名部分,所以如果你想使用子域名,這個選項必要的,并且也用于會話cookie。

請牢記不只有 Flask 存在不知道子域名的問題,你的瀏覽器同樣存在這樣的問題。 大多數現代 web 瀏覽器不允許服務器名不含有點的跨子域名 cookie。因此如果你的服務器的 名稱為 localhost,你將不能為 localhost 和所有它的子域名設置一個 cookie。 請選擇一個合適的服務器名,像 'myapplication.local', 并添加你想要的服務器名 + 子域名 到你的 host 配置或設置一個本地 bind。
Examples

   -------->http://book.muxistudio.com   ||http://muxistudio.com-------->http://blog.muxistudio.com   ||   -------->http://share.muxistudio.com

1.本地測試

修改 /etc/hosts 文件

注意:僅在本地測試中有效!

將所有需要使用的子域名添加到其中,例:

127.0.0.1 flask.dev  localhost # 域名127.0.0.1 test.flask.dev localhost # 子域名127.0.0.1 othertest.flask.dev localhost # 子域名

在Flask應用的配置文件中添加'SERVER_NAME'

在應用配置中將'SERVER_NAME'設置為指定的域名及默認監聽的端口,例:

#...app = Flask(__name__)app.config['SERVER_NAME'] = 'flask.dev:5000'#...

2.配置藍圖

藍圖中的subdomain為hosts文件中所添加的子域名

#...# Blueprint declarationbp = Blueprint('subdomain', __name__, subdomain="<user>")#...# Register the blueprint into the applicationapp.register_blueprint(bp)#...

3.服務器端配置

講Flask應用設置中的'SERVER_NAME'修改為生產環境中注冊的域名

flask.dev:5000 ----> muxistudio.com

4.Nginx配置

配置監聽端口,下面的例子中使用正則表達式獲取用戶訪問的子域名,對于www,應該在正則表達式獲取時將其過濾,在用戶訪問時對其進行重定向至www.yourdomain.com頁面,否則www將會被視為子域名。

配置實例:

 server { listen 80; listen 443 ssl; ssl_certificate /usr/local/nginx/ssl/nginx.crt; ssl_certificate_key /usr/local/nginx/ssl/nginx.key; server_name ~^www/.(?<user>.+/.)?markdownblog/.com$; return 301 "$scheme://${user}markdownblog.com$request_uri"; } server { listen 80; listen 443 ssl; ssl_certificate /usr/local/nginx/ssl/nginx.crt; ssl_certificate_key /usr/local/nginx/ssl/nginx.key; server_name ~^.+/.markdownblog/.com$ markdownblog.com; location / {  proxy_set_header Host $http_host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_pass http://127.0.0.1:8085; }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲色图| 久久99视频精品| 日韩一二三在线视频播| 亚洲男人的天堂在线| 欧美在线一区二区视频| 亚洲色图色老头| 欧美亚洲视频在线观看| 欧美小视频在线观看| 国产精品美女免费看| 国产精品视频xxxx| 色偷偷亚洲男人天堂| 尤物九九久久国产精品的特点| 欧美精品videos| 高清一区二区三区日本久| 这里只有精品视频| 亚洲精品视频网上网址在线观看| 久久久中精品2020中文| 欧美亚洲国产成人精品| 国产国语videosex另类| 97超级碰在线看视频免费在线看| 国产精品久久久久久久久久免费| 欧美精品免费播放| 日韩精品久久久久| 成人深夜直播免费观看| 久久影院模特热| 国产视频自拍一区| 最近2019中文字幕大全第二页| 亚洲理论片在线观看| 亚洲韩国青草视频| 精品国产精品三级精品av网址| 欧洲精品在线视频| 欧美精品做受xxx性少妇| 国产色综合天天综合网| 热99精品只有里视频精品| 欧日韩不卡在线视频| 成人h片在线播放免费网站| 在线观看国产精品淫| 欧美洲成人男女午夜视频| 亚洲精品欧美极品| 日韩久久免费视频| 欧美伊久线香蕉线新在线| 国产精品日韩在线观看| 欧美猛交ⅹxxx乱大交视频| 欧美性猛交xxxx乱大交极品| 欧美一级大片在线观看| 国产成人鲁鲁免费视频a| 韩曰欧美视频免费观看| 欧美一级大片视频| 国产午夜精品一区理论片飘花| 九九热精品视频在线播放| 高清欧美性猛交xxxx黑人猛交| 国产噜噜噜噜久久久久久久久| 欧美韩国理论所午夜片917电影| 日韩激情在线视频| 久久精品成人一区二区三区| 九九热这里只有在线精品视| 91精品国产色综合久久不卡98| 欧美中文字幕在线播放| 91色精品视频在线| 日本亚洲欧洲色| 中文在线资源观看视频网站免费不卡| 精品久久久久久| 粗暴蹂躏中文一区二区三区| 欧美激情精品久久久久久| 日韩av网站在线| 欧美日韩另类视频| 国产精品久久91| 欧美在线视频网站| 国产美女主播一区| 精品呦交小u女在线| 欧美激情2020午夜免费观看| 国产精品午夜国产小视频| 亚洲色图偷窥自拍| 亚洲男人第一av网站| 在线精品国产成人综合| 日本韩国欧美精品大片卡二| 国产在线播放91| 欧美野外wwwxxx| 国产精品99导航| 亚洲开心激情网| 91系列在线观看| 国产精品久久久久免费a∨大胸| 精品国偷自产在线| 成人乱色短篇合集| 久久久久这里只有精品| 欧美日韩午夜剧场| 成人精品一区二区三区电影免费| 另类美女黄大片| 韩国国内大量揄拍精品视频| 韩国精品美女www爽爽爽视频| 狠狠色狠色综合曰曰| 日韩精品在线免费观看视频| 欧美交受高潮1| 国产精品普通话| 亚洲直播在线一区| 亚洲第一网中文字幕| 久久成人人人人精品欧| 欧美性感美女h网站在线观看免费| 精品久久久久久久中文字幕| 日韩欧美第一页| 在线观看不卡av| 在线视频欧美日韩| 日本久久精品视频| 黄色91在线观看| 26uuu亚洲国产精品| 欧美电影免费在线观看| 中文字幕日韩有码| 国产日韩在线精品av| 久久夜色撩人精品| 国产精品视频一区国模私拍| 亚洲精品久久久久| 国产偷亚洲偷欧美偷精品| 91中文在线视频| 亚洲91精品在线观看| 亚洲国产欧美一区二区丝袜黑人| www.亚洲男人天堂| xxav国产精品美女主播| 国产偷国产偷亚洲清高网站| 中文字幕av一区中文字幕天堂| 欧美大全免费观看电视剧大泉洋| 中国日韩欧美久久久久久久久| 国产精品美女主播| 日韩av在线网页| 欧美插天视频在线播放| 精品一区二区电影| 久久亚洲精品国产亚洲老地址| 在线日韩中文字幕| 中文欧美日本在线资源| 国产精品一区二区三| 日韩电影免费在线观看中文字幕| 国产午夜精品视频免费不卡69堂| 欧美日韩中文在线| 日韩电影视频免费| 欧美高清视频一区二区| 中文字幕在线视频日韩| 日韩经典一区二区三区| 欧美激情综合色综合啪啪五月| 国产精品99久久久久久www| 51色欧美片视频在线观看| 国产精品a久久久久久| 久久精品99久久香蕉国产色戒| 亚洲欧美一区二区三区久久| 欧美性猛交xxxx黑人猛交| 久久91亚洲人成电影网站| 欧洲亚洲在线视频| 欧美精品在线免费| 蜜臀久久99精品久久久无需会员| 欧美一区第一页| 日韩大胆人体377p| 欧美性生活大片免费观看网址| 在线观看欧美日韩国产| 欧美激情精品久久久久久蜜臀| 日韩精品极品在线观看| 欧美午夜激情小视频| 26uuu亚洲国产精品| 精品视频久久久久久| 久久6免费高清热精品| 欧美成人亚洲成人| 日本亚洲欧美三级| 国产国产精品人在线视| 日本精品视频在线播放| 欧美日产国产成人免费图片| 国产亚洲欧美一区| 国产精品ⅴa在线观看h|