登录模块
1.form.py
导入这个包
from django.forms import fields,
class loginPage(forms.Form):
username = fields.CharField(widget=forms.TextInput(attrs={'class': "ipt1"}),
label="用户名", required=True,)
password = fields.CharField(widget=forms.PasswordInput(attrs={'class': 'ipt1'}),
label="密码", required=True,)
2.view.py
def login1Page(request):
logined = False
if request.method == "POST":
loginform = loginPage(request.POST)
if loginform.is_valid():
// 读取返回过来的信息,cleaned_data[]
username = loginform.cleaned_data["username"]
password = loginform.cleaned_data["password"]
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
logined = True
# visits = str(request.COOKIES.get('visits', username))
# response = render(request, "login1.html", {"visits": visits})
# visits = username
# response.set_cookie('visits', visits, max_age=24*60*60)
# return response
else:
loginform = loginPage()
return render(request, "login1.html", {
"loginform": loginform,
"logined": logined,
})
3.html
{% if logined %}
<strong>登录成功!</strong>
<a href="{% url 'pagin1' %}">返回首页.</a><br />
<a href="{% url 'logout' %}">注销</a>
{% else %}
<form id="login_form" method="post" action="/pagin1/">
{% csrf_token %}
<div class="box">
<!-- <p><label>用户名:<input id="username" class="ipt" type="text"></label></p>
<p><label>密 码:<input id="passwd" class="ipt" type="password"></label></p>
-->
{{loginform.as_p}}
<p><input type="submit" name="submit" class="btn" value="登录" /></p>
</div>
</form>
{% endif %}
注册模块
1.model.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
stuId = models.CharField(max_length=10, unique=True, verbose_name="学号")
QQ = models.CharField(max_length=20, blank=True, verbose_name="QQ号")
def __str__(self):
return self.user.username
2.form.py
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput(), label="密码")
class Meta:
model = User
fields = ("username", "password", "email")
labels = {
"username": "名字",
"email": "邮箱",
"password": "密码",
}
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('stuId', "QQ")
3.view.py
def register(request):
registered = False
if request.method == 'POST':
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
registered = True
else:
print(user_form, profile_form)
else:
user_form = UserForm()
profile_form = UserProfileForm()
return render(request, "register.html", {"user_form": user_form, "profile_form": profile_form, 'registered': registered})
4. html
{% if registered %}
<strong>感谢注册!</strong>
<a href="{% url 'ArticleList1' 'mei-shi' 1%}">返回首页.</a><br/>
{% else %}
<strong>请填写信息!</strong><br />
<form id="user_form" method="post" action="/m/">
{% csrf_token %}
<!-- as.p每个表单显示为一个段落-->
{{ user_form.as_p }}
{{ profile_form.as_p }}
<input type="submit" name="submit" value="注册" />
</form>
{% endif %}