为什么pycharm里runcode的结果和命令行runserver的结果不一样
这是pycharm里runcode的显示的登录界面,并且输入用户名和密码后可以成功跳转至博客界面

这是命令行runserver后显示的登陆界面

输入用户名和密码后报错

这是单独打开login.html文件后显示的界面

这是url配置、view函数和html源代码:
1、mysite里的url:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
path('', include('login.urls')),
]
2、login下的url:
from django.urls import path
from login import views
urlpatterns = [
path('', views.login),
path('register/', views.register, name='register'),
path('logout/', views.logout),
]
3、views:
from django.shortcuts import render
from django.shortcuts import redirect
from login.models import User
def login(request):
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
message = "请检查填写的内容!"
if username.strip() and password.strip(): # 确保用户名和密码都不为空
try:
user = User.objects.get(name=username)
except:
message = "用户不存在!"
return render(request, 'login/login.html', {"message": message})
if user.password == password:
return redirect('/blog/index/')
else:
message = "密码不正确!"
return render(request, 'login/login.html', {"message": message})
else:
return render(request, "login/login.html", {"message": message})
return render(request, 'login/login.html')
def register(request):
if not request.session.get("is_login", None): # get没有值返回None
return redirect('/')
request.session.flush()
return render(request, 'login/register.html')
def logout(request):
if request.session.get("is_login", None):
return redirect('/index/')
return render(request, 'login/register.html', locals())
4、login.html:
{#login/templates/login/login.html#}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<title>登录</title>
</head>
<body>
<div class="container">
<div class="panel panel-default" style="width: 300px; margin: 0 auto">
<h1>欢迎登录!</h1>
<form action="" method="post">
{% if message %}
<div class="alert alert-warning">{{ message }}</div>
{% endif %}
{% csrf_token %}
<p>
<label for="id_username">用户名:</label>
<input type="text" id="id_username" name="username" placeholder="用户名" autofocus required />
</p>
<p>
<label for="id_password">密码:</label>
<input type="password" id="id_password" placeholder="密码" name="password" required >
</p>
<div>
<a href="{% url "register" %}" class="text-success "><ins>新用户注册</ins></a>
<button type="submit" class="btn btn-primary float-right">登录</button>
</div>
</form>
</div>
</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/popper.js/1.15.0/umd/popper.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>

这是命令行runserver后显示的登陆界面

输入用户名和密码后报错

这是单独打开login.html文件后显示的界面

这是url配置、view函数和html源代码:
1、mysite里的url:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
path('', include('login.urls')),
]
2、login下的url:
from django.urls import path
from login import views
urlpatterns = [
path('', views.login),
path('register/', views.register, name='register'),
path('logout/', views.logout),
]
3、views:
from django.shortcuts import render
from django.shortcuts import redirect
from login.models import User
def login(request):
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
message = "请检查填写的内容!"
if username.strip() and password.strip(): # 确保用户名和密码都不为空
try:
user = User.objects.get(name=username)
except:
message = "用户不存在!"
return render(request, 'login/login.html', {"message": message})
if user.password == password:
return redirect('/blog/index/')
else:
message = "密码不正确!"
return render(request, 'login/login.html', {"message": message})
else:
return render(request, "login/login.html", {"message": message})
return render(request, 'login/login.html')
def register(request):
if not request.session.get("is_login", None): # get没有值返回None
return redirect('/')
request.session.flush()
return render(request, 'login/register.html')
def logout(request):
if request.session.get("is_login", None):
return redirect('/index/')
return render(request, 'login/register.html', locals())
4、login.html:
{#login/templates/login/login.html#}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<title>登录</title>
</head>
<body>
<div class="container">
<div class="panel panel-default" style="width: 300px; margin: 0 auto">
<h1>欢迎登录!</h1>
<form action="" method="post">
{% if message %}
<div class="alert alert-warning">{{ message }}</div>
{% endif %}
{% csrf_token %}
<p>
<label for="id_username">用户名:</label>
<input type="text" id="id_username" name="username" placeholder="用户名" autofocus required />
</p>
<p>
<label for="id_password">密码:</label>
<input type="password" id="id_password" placeholder="密码" name="password" required >
</p>
<div>
<a href="{% url "register" %}" class="text-success "><ins>新用户注册</ins></a>
<button type="submit" class="btn btn-primary float-right">登录</button>
</div>
</form>
</div>
</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/popper.js/1.15.0/umd/popper.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>
...全文
相关推荐
高校技术转移办公室人员在推广科技成果时,如何解决技术推介材料制作繁琐、缺乏专业性的问题?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
利用 MATLAB 仿真均匀平面波极化的传播图像(线极化,圆极化).zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
产业园区运营如何通过智能手段精准匹配产业需求与技术供给?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
政府科技管理者在推动科技成果转化过程中,如何有效解决供需信息匹配不精准的问题?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
网店开设与管理实训(第2版)PPT课件+练习
网店开设与管理实训(第2版)PPT课件+练习


其他
