使用Flask和Django中解決跨域請(qǐng)求問題
pip install flask-cors2、使用flask_cors的CORS
代碼示例
from flask_cors import *app = Flask(__name__)CORS(app, supports_credentials=True)
Flask-CORS文檔: https://flask-cors.readthedocs.io/en/latest/
Django解決跨域1、安裝django-cors-headerspip install django-cors-headers2、修改settings.py
INSTALLED_APPS = [ ... ’corsheaders’, ...]MIDDLEWARE_CLASSES = ( ’django.middleware.security.SecurityMiddleware’, ’django.contrib.sessions.middleware.SessionMiddleware’, ’corsheaders.middleware.CorsMiddleware’, # 添加這一行 ’django.middleware.common.CommonMiddleware’, # ’django.middleware.csrf.CsrfViewMiddleware’, 注釋這一行 ’django.contrib.auth.middleware.AuthenticationMiddleware’, ’django.contrib.messages.middleware.MessageMiddleware’, ’django.middleware.clickjacking.XFrameOptionsMiddleware’,)# 跨域增加忽略CORS_ALLOW_CREDENTIALS = True # 指明在跨域訪問中,后端是否支持對(duì)cookie的操作CORS_ORIGIN_ALLOW_ALL = True # 允許所有主機(jī)請(qǐng)求你的APICORS_ORIGIN_WHITELIST = ( # 跨域請(qǐng)求白名單,為空時(shí)默認(rèn)為全部 ’http://127.0.0.1:8080’, ’http://localhost:8080’,)CORS_ALLOW_METHODS = ( ’DELETE’, ’GET’, ’OPTIONS’, ’PATCH’, ’POST’, ’PUT’, ’VIEW’,)CORS_ALLOW_HEADERS = ( ’XMLHttpRequest’, ’X_FILENAME’, ’accept-encoding’, ’authorization’, ’content-type’, ’dnt’, ’origin’, ’user-agent’, ’x-csrftoken’, ’x-requested-with’,)
補(bǔ)充:Flask和Django的區(qū)別
(1)FlaskFlask確實(shí)很“輕”,不愧是Micro Framework,從Django轉(zhuǎn)向Flask的開發(fā)者一定會(huì)如此感慨,除非二者均為深入使用過
Flask自由、靈活,可擴(kuò)展性強(qiáng),第三方庫的選擇面廣,開發(fā)時(shí)可以結(jié)合自己最喜歡用的輪子,也能結(jié)合最流行最強(qiáng)大的Python庫
入門簡(jiǎn)單,即便沒有多少web開發(fā)經(jīng)驗(yàn),也能很快做出網(wǎng)站
非常適用于小型網(wǎng)站
非常適用于開發(fā)web服務(wù)的API
開發(fā)大型網(wǎng)站無壓力,但代碼架構(gòu)需要自己設(shè)計(jì),開發(fā)成本取決于開發(fā)者的能力和經(jīng)驗(yàn)
各方面性能均等于或優(yōu)于Django
Django自帶的或第三方的好評(píng)如潮的功能,F(xiàn)lask上總會(huì)找到與之類似第三方庫
Flask靈活開發(fā),Python高手基本都會(huì)喜歡Flask,但對(duì)Django卻可能褒貶不一
Flask與關(guān)系型數(shù)據(jù)庫的配合使用不弱于Django,而其與NoSQL數(shù)據(jù)庫的配合遠(yuǎn)遠(yuǎn)優(yōu)于Django
Flask比Django更加Pythonic,與Python的philosophy更加吻合
(2)DjangoDjango太重了,除了web框架,自帶ORM和模板引擎,靈活和自由度不夠高
Django能開發(fā)小應(yīng)用,但總會(huì)有“殺雞焉用牛刀”的感覺
Django的自帶ORM非常優(yōu)秀,綜合評(píng)價(jià)略高于SQLAlchemy
Django自帶的模板引擎簡(jiǎn)單好用,但其強(qiáng)大程度和綜合評(píng)價(jià)略低于Jinja
Django自帶ORM也使Django與關(guān)系型數(shù)據(jù)庫耦合度過高,如果想使用MongoDB等NoSQL數(shù)據(jù),需要選取合適的第三方庫,且總感覺Django+SQL才是天生一對(duì)的搭配,Django+NoSQL砍掉了Django的半壁江山
Django目前支持Jinja等非官方模板引擎
Django自帶的數(shù)據(jù)庫管理app好評(píng)如潮
Django非常適合企業(yè)級(jí)網(wǎng)站的開發(fā):快速、靠譜、穩(wěn)定
Django成熟、穩(wěn)定、完善,但相比于Flask,Django的整體生態(tài)相對(duì)封閉
Django是Python web框架的先驅(qū),用戶多,第三方庫最豐富,最好的Python庫,如果不能直接用到Django中,也一定能找到與之對(duì)應(yīng)的移植
Django上手也比較容易,開發(fā)文檔詳細(xì)、完善,相關(guān)資料豐富
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera2. ASP.NET Core實(shí)現(xiàn)中間件的幾種方式3. React優(yōu)雅的封裝SvgIcon組件示例4. PHP字符串前后字符或空格刪除方法介紹5. ASP腳本組件實(shí)現(xiàn)服務(wù)器重啟6. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲7. ASP基礎(chǔ)知識(shí)Command對(duì)象講解8. 如何在jsp界面中插入圖片9. ASP動(dòng)態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗(yàn)分享10. jsp+mysql實(shí)現(xiàn)網(wǎng)頁的分頁查詢
