Django 新建account应用

一、应用基本配置

1、在根目录下新建account应用。python manage.py startapp account

2、在项目根目录的项目目录的setting下的INSTALLED_APPS中添加 ‘account’

3、在项目根目录的项目目录的url.py中进行URL配置。添加

url(r'^account/',include('account.urls',namespace='account')),

注意:将app_name=‘account’写在account.urls中

4、在account中建立urls.py文件。并添加代码

from django.conf.urls import url
from . import views

from django.conf import settings

urlpatterns=[
    url(r'^login/$',views.user_login,name='user_login'),
]

此处必须加‘.’.因为这个list中只有一个元素。否则系统会误解。

views.user_login意味着必须在view.py中创建一个名为user_login的函数来响应请求。

二、设计用户登录过程

1、在./account中建立forms.py文件,专门用于存放各种与表单有关的类。编写

from django import forms

class LoginForm(forms.Form):
    username=forms.CharField()
    password=forms.CharField(widget=forms.PasswordInput)

login=LoginForm() 创建未绑定的对象

dir(login)查看可用方法
主要关注以下几种方法、属性

  • cleaned_data:以字典形式返回你注册的用户和密码
  • is_bound:判断用户是否绑定
  • is_vaild():判断输入的用户和密码是否符合格式要求

2、编写用户登录的视图函数,修改 account 应用下的 views.py

from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth import authenticate,login
from .forms import LoginForm

# Create your views here.

def user_login(request):
    if request.method=='POST':
        login_form=LoginForm(request.POST)
        if login_form.is_valid():#判断表单数据是否符合要求(比如不能为空之类的)
            cd=login_form.cleaned_data
            user=authenticate(username=cd['username'],password=cd['password'])

            if user:
                login(request,user)
                return HttpResponse('Welcome Boys and Girls,you have logined successfully...')
            else:
                return HttpResponse('sorry,your input is error...')
    if request.method=='GET':
        login_form=LoginForm()
        return render(request,'account/login.html',{'form':login_form})

3、编写在./templates/account/login.html中。

{%extends 'base.html'%}
{%block title%}登录{%endblock%}

{%block content%}
<div class="row text-center vertical-middle-sm">
    <h1>Login</h1>
    <p>input your username and password</p>
    <form action="." class="form-horizontal" method="post">
        {%csrf_token%}
        {{form.as_p}}
        <input type="submit" value="Login">
    </form>
</div>
{%endblock%}

{%csrf_token%} 这个必须有,只要在 form 标签内就 OK。保证了前端可以通过 POST 方式提交数据。
{{form.as_p}} 实例对象的 as_p方法,使得表单数据呈现为一系列p标签,类似有 as_ul、as_table。

此时在网址中输入http://localhost:8080/account/login 即可看到登录界面

参考自:https://blog.csdn.net/lzw2016/article/details/80425242

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

chde2Wang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值