gpt4 book ai didi

使用Flask和Django中解决跨域请求问题

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章使用Flask和Django中解决跨域请求问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Flask解决跨域

1、下载flask_cors包

?
1
pip install flask - cors

2、使用flask_cors的CORS

代码示例 。

?
1
2
3
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-headers

?
1
pip install django - cors - headers

2、修改settings.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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 #  指明在跨域访问中,后端是否支持对cookie的操作
CORS_ORIGIN_ALLOW_ALL = True # 允许所有主机请求你的API
CORS_ORIGIN_WHITELIST = ( # 跨域请求白名单,为空时默认为全部
     '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' ,
)

补充:Flask和Django的区别 。

(1)Flask

Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过 。

Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库 。

入门简单,即便没有多少web开发经验,也能很快做出网站 。

非常适用于小型网站 。

非常适用于开发web服务的API 。

开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验 。

各方面性能均等于或优于Django 。

Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库 。

Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一 。

Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django 。

Flask比Django更加Pythonic,与Python的philosophy更加吻合 。

(2)Django

Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高 。

Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉 。

Django的自带ORM非常优秀,综合评价略高于SQLAlchemy 。

Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja 。

Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山 。

Django目前支持Jinja等非官方模板引擎 。

Django自带的数据库管理app好评如潮 。

Django非常适合企业级网站的开发:快速、靠谱、稳定 。

Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭 。

Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植 。

Django上手也比较容易,开发文档详细、完善,相关资料丰富 。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.

原文链接:https://blog.csdn.net/willbkimps/article/details/91492954 。

最后此篇关于使用Flask和Django中解决跨域请求问题的文章就讲到这里了,如果你想了解更多关于使用Flask和Django中解决跨域请求问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com