【发布时间】:2021-04-21 10:47:10
【问题描述】:
我刚刚开始编写 Python Django 代码。我只是想做一个基本的登录项目。我试图将登录变量从 HTML 端传递到文件 views.py.
这是我的 HTML 代码:
<form action="/index" method="post">
{% csrf_token %}
<div class="form-group">
<label for="username">Username</label>
<input class="form-control" id="username" type="email"/>
</div>
<div class="form-group">
<div class="d-flex justify-content-between">
<label for="password">Password</label><a class="fs--1">Forgot Password?</a>
</div>
<input class="form-control" id="password" type="password" />
</div>
<div class="custom-control custom-checkbox">
<input class="custom-control-input" type="checkbox" id="card-checkbox" checked="checked"/>
<label class="custom-control-label" for="card-checkbox">Remember me</label>
</div>
<div class="form-group">
<button class="btn btn-primary btn-block mt-3"
type="submit"
id= "login"
name="submit">Log in</button>
</div>
</form>
我的 urls.py 文件:
urlpatterns = [
path('', views.loginPage, name="login"),
path('index', views.home, name="index")
]
我的 forms.py 文件:
from django import forms
class LoginForm(forms.Form):
username = forms.EmailField(label="Username"),
password = forms.CharField(label="Password")
还有我的 views.py 文件:
def home(request):
context = {}
if request.method == 'POST':
form = LoginForm(request.POST)
print('form:', form)
if form.is_valid():
print('niceee')
else:
return render(request, 'index.html', context)
else:
form = LoginForm()
我只想在 views.py 中查看用户名和密码值。但是,我在 views.py 中看不到变量。我该如何解决这个问题?
【问题讨论】:
-
我认为您并不完全了解 django 工作流程的工作原理......您很可能需要一个与表单相关的模型,因此您可以在数据库中使用该模型。
-
如果您在 home 函数中捕获 GET 请求并将其显示在您的表单中,您应该将您创建的表单作为上下文变量传递,例如:
标签: python django django-views django-forms django-templates