• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用Flask和Django中解决跨域请求问题

    Flask解决跨域

    1、下载flask_cors包

    pip install flask-cors

    2、使用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-headers

    pip install django-cors-headers

    2、修改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 #  指明在跨域访问中,后端是否支持对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上手也比较容易,开发文档详细、完善,相关资料丰富

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

    您可能感兴趣的文章:
    • Flask配置Cors跨域的实现
    • Flask框架踩坑之ajax跨域请求实现
    • Flask实现跨域请求的处理方法
    • Flask解决跨域的问题示例代码
    • 原生JS实现Ajax跨域请求flask响应内容
    • 利用nginx解决跨域问题的方法(以flask为例)
    • Python中flask框架跨域问题的解决方法
    上一篇:Django request.META.get()获取不到header头的原因分析
    下一篇:Django跨域请求无法传递Cookie的解决
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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