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.csdn.net/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.csdn.net/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