Django 不能直接在中间件中查询数据吗?

做了个IP黑名单表,直接在中间件中获取用户IP与数据库对比,然后禁止访问

from django.utils.deprecation import MiddlewareMixin
from pai.apps.index.models import BlackList

# 封禁IP黑名单

class BlackListMiddleware(MiddlewareMixin):
    def process_request(self, request):

        user_ip = request.META.get('REMOTE_ADDR')
        res = BlackList.objects.get(ip=user_ip)
        print('处理请求中间件', user_ip, res)

这样写直接报错,中间件中不可以查询数据吗?

阅读 1.7k
1 个回答

肯定是可以的,把你这个中间件的顺序放到最后试下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题