Django问题记录(学习笔记)

本文解答了关于Django框架的一些常见问题,包括运行时报错、使用@login_required装饰器未生效、创建表时出现错误等,并提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Q1:运行报错 RuntimeError at /login_action

 

Q2:使用@login_required没生效问题

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib import auth
from django.contrib.auth.decorators import login_required

# Create your views here.
def login_action(request):
    if request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')
        print('do login: username={}, password={}'.format(username, password))
        # if (username == 'admin' and password == 'admin123'):

        #引用Django认证登陆
        user = auth.authenticate(username=username, password=password)
        if user is not None:
            auth.login(request, user) #调用login()函数进行登陆,login()函数接收HttpRequest对象和一个user对象

            response = HttpResponseRedirect('/event_manage/')
            # response.set_cookie('user', username, 3600) #添加浏览器cookie
            request.session['user'] = username #将session信息记录到浏览器
            return response
        else:
            return render(request, 'login_action.html', {'error': 'username or password error!'})
    else:
        return render(request, 'login_action.html')


def index(request):
    return render(request, 'index.html')

@login_required  
def  event_manage(request):
    # username = request.COOKIES.get('user', '') #读取浏览器cookie
    username = request.session.get('user', '') #读取浏览器session
    return render(request,"event_manage.html",{"user":username})

        A2:使用登录验证时,需要清除cookie/session,直接使用浏览器设置清除不掉,需要手动删除。删除之后,直接使用URL跳转就会被限制。

 

Q3:创建表报错

        A3:参考博友文章https://blog.youkuaiyun.com/hpu_yly_bj/article/details/78927121。使用ForeignKey时,添加参数on_delete=models.CASCADE

 

Q4:django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported.

        A4:参考博友文章https://blog.youkuaiyun.com/jason_cdd/article/details/106953974

 

Q5:django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 61] Connection refused)")

        A5:查看mysql运行状态。mysql.server status

 

Q6:运行报错:RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

      A6:安装cryptography: pip3 install cryptography

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值