Django篇

登录模块

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 %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@追求卓越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值