1.创建一个app (命令:python3 manage.py startapp login)
2.设置项目settings.py文件
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login', #添加应用
]
#连接好数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'search', #数据库名字
'USER':'root', #登陆数据库的用户名
'PASSWORD':'123456', #登陆数据库的密码
'HOST':'localhost', #数据库的ip地址
'PORT':'3306', #ip地址的端口号,默认(3306)
}
}
#加入模板Templates
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],#加入模板文件
'APP_DIRS': True,
3.配置总项目的urls.py文件
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/',include('login.urls')),#添加此项
]
4.配置login应用下的urls.py文件
from django.conf.urls import url
from login import views
urlpatterns =[
url(r'^day_logins/',views.login),
url(r'^logout/',views.logout),
url(r'index',views.index),
url(r'register',views.regist),
]
5.创建模型在login应用下的models.py文件里,然后迁移文件和创建数据库(python manage.py makemigrations)(python manage.py migrate)
from django.db import models
# Create your models here.
class user(models.Model):
u_name = models.CharField(max_length=10)#保存用户名
u_password = models.CharField(max_length=255)#保存密码
class Meta:
db_table='user'
6.login应用中的views(视图)写相应的方法
from django.shortcuts import render,render_to_response
from django import forms
from django.http import HttpResponseRedirect,HttpResponse
from .models import user
from django.contrib.auth.hashers import make_password,check_password
from django.views.decorators.csrf import csrf_exempt
class UserForm(forms.Form):
username = forms.CharField(label='用户名',max_length=10)
password = forms.CharField(label='密码',widget=forms.PasswordInput())
#处理登录的方法
@csrf_exempt
def login(request):
if request.method == 'GET':
return render(request,'login.html')
if request.method == 'POST':
data = UserForm(request.POST)
if data.is_valid():
#获取到表单提交的值
username = data.cleaned_data['username']
password = data.cleaned_data['password']
#把表单中取到的值和数据库里做对比
try:
use= user.objects.get(u_name=username)
if password == use.u_password:
response = HttpResponseRedirect('/index/')
return response
else:
response = HttpResponseRedirect('/login/')
return response
except:
response = HttpResponseRedirect('/login/')
return response
else:
response = HttpResponseRedirect('/login/')
return response
def logout(request): #退出登录的方法
if request.method == 'GET':
response = HttpResponseRedirect('/login/')
return response
def index(request):
if request.method =='GET':
return render(request,'index.html')
7.对应的模板文件
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/login/logout/"><span>退出</span></a>
</body>
</html>
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/login/day_logins/" method="post">
<div><span>用户名:</span><input type="text" name="username"></div>
<div><span>密码:</span><input type="password" name="password"></div>
<div><input type="submit" value="登录"></div>
</form>
</body>
</html>