Django 构建登录表单
我正在用Django构建一个登录表单,就我对它的研究而言,我似乎无法创建一个独立于管理界面的登录表单。我的意思是,访问者不必是管理员中的注册用户。很像PHP和MySQL。我可以用PHP做我需要的事情,但我已经学习Python一段时间了,我想用Python构建它。Django真的给了我唯一的选择吗Django 构建登录表单,django,Django,我正在用Django构建一个登录表单,就我对它的研究而言,我似乎无法创建一个独立于管理界面的登录表单。我的意思是,访问者不必是管理员中的注册用户。很像PHP和MySQL。我可以用PHP做我需要的事情,但我已经学习Python一段时间了,我想用Python构建它。Django真的给了我唯一的选择吗 让我想知道Pinterest是怎么做到的。我知道绝大多数应用程序都是在Django中构建的,人们会在首页上看到一个登录表单。事实上,有一些独立于管理员登录的登录视图: 将以下内容添加到URL.py: u
让我想知道Pinterest是怎么做到的。我知道绝大多数应用程序都是在Django中构建的,人们会在首页上看到一个登录表单。事实上,有一些独立于管理员登录的登录视图: 将以下内容添加到URL.py:
urlpatterns = [
url('^', include('django.contrib.auth.urls')),
]
这将包括以下URL模式:
^login/$ [name='login']
^logout/$ [name='logout']
^password_change/$ [name='password_change']
^password_change/done/$ [name='password_change_done']
^password_reset/$ [name='password_reset']
^password_reset/done/$ [name='password_reset_done']
^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm']
^reset/done/$ [name='password_reset_complete']
^login/$[name='login']
^注销/$[name='logout']
^密码更改/$[name='password\u change']
^密码\u更改/done/$[name='password\u更改\u完成']
^密码\u重置/$[name='password\u重置']
^密码\u重置/done/$[name='password\u重置\u完成']
^重置/(?P[0-9A-Za-z \-]+)/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$[name='password\u reset\u confirm']
^重置/完成/$[name='password\u reset\u complete']
这些为非管理员用户提供登录/更改和重置密码等视图。作为安全预防措施,默认情况下,它们不包括注册视图(因为许多实现可能不允许随机人员注册) 您可能会发现这很有帮助。我没有写所有的解释,所以请搜索您不熟悉的属性或方法。此外,此实现缺少许多选项,如确认电子邮件地址等(这些是我目前的次要优先事项)。 在这种情况下,“password”和“username”是模型属性。 在这里,用户使用用户名和密码创建帐户后,将对其进行身份验证,用户将登录,然后重定向到指定的url 对于html/引导登录表单,请查看以下内容: 对于django实现,您可以执行以下步骤: 1) 制作html表单后,在url.py中添加适当的url行 2) 在项目中创建一个新文件,并将其命名为forms.py,然后: 来自django导入表单
class UserForm(forms.ModelsForm):
email = form.CharField(widget=forms.EmailInput)
password = form.CharField(widget=forms.PasswordInput)
class Meta:
model = *write your model name here*
fields = *fields from your model. The model design should include
username email password and other attributes*
3) 在views.py中:
from django.views.generic import View
from django.shortcuts import render, redirect
class UserFormView(View):
form_class = UserForm
template_name = *your html template*
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form':form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False)
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user.set_password(password)
user.save()
user = authenticate(username=username, password=password)
if user is not None and user.is_active:
login(request, user)
return redirect(*your redirecting url*)
return render(request, self.template_name, {'form':form})
你是说你想让用户注册然后登录你的网站?你说得对,我的朋友。我知道Django是一个非常高级的框架,它仍在开发和开发中。这让我有点吃惊,这个特殊的任务不是在不干扰admin的情况下完成的。哦,你是django的新手,好吧,django提供了创建用户(注册)和验证用户(登录)的功能,这方面有很多教程,但我认为最好的注册方法是使用@mohammedqudah登录,我会尝试一下,但它看起来与我已经拥有的非常相似:)我会仔细看看,以防错过一些重要的东西。你真的需要了解django的基本知识,并了解它是如何构建的。它提供了一些强有力的方法来处理这些事情。网上也有很多很好的资源,只要彻底搜索一下这个话题就可以了。最重要的是,你必须有耐心,花相当长的时间,并通过官方文件。