Python版本3.5,django版本1.10
1 新建项目
django-admin.py startproject website1
2 启动服务器,查看是否正常
manage.py runserver
3 进入工程website1一级文件夹下新建app
python manage.py startapp account
4 将新建立的app加入工程中
修改 website1/website1/settings.py的INSTALL_APPS,将app名称加入该元组中。
5 修改website1/urls.py文件
from django.conf.urls import url, include
from account import views as account_views
urlpatterns = [
url(r'^index/', account_views.index), # 用户主界面
url(r'^register/', account_views.register), # 注册界面
url(r'^login/', account_views.login), # 登陆界面
url(r'^logout/', account_views.logout), # 注销界面
]
6 修改views.py
from django.shortcuts import render
from .models import UserModel
from django.http import HttpResponseRedirect
# Create your views here.
def index(request):
s = request.session.get('username', default=None)
if s:
return render(request, 'account/index.html', {'username':s}) # 跳转至用户主界面
else:
return HttpResponseRedirect('/login')
def register(request):
if request.method == 'POST': # 用户输入账户密码后提交表单
username = request.POST['username']
password = request.POST['password']
UserModel.objects.create(username=username, password=password) # 写入数据库
return render(request, 'account/regok.html')
else: # 用户直接访问注册页面
return render(request, 'account/register.html')
def login(request):
if request.method == 'POST': # 用户输入账户密码后提交表单
username = request.POST['username']
password = request.POST['password']
hasUser = UserModel.objects.filter(username=username, password=password)
if hasUser: # 该用户存在
request.session['username'] = username # 保存用户名在session中
return render(request, 'account/index.html', {'username':username}) # 跳转至用户主界面
else:
return render(request, 'account/login.html')
else: # 用户直接访问登陆页面
return render(request, 'account/login.html')
def logout(request):
try:
del request.session['username'] # 将用户名从session中删除
except KeyError:
pass
return render(request, 'account/logout.html')
index.html
用户中心
欢迎您,{{username}}
退出
登陆
请登陆
注册
注册成功
注册成功!
点击这里跳转至登陆界面
注销
已注销!
from django.db import models
# Create your models here.
class UserModel(models.Model):
username = models.CharField(max_length=30)
password = models.CharField(max_length=30)
def __str__(self):
return self.username+", "+self.password
其实,django中自带了很多模块可以快速建立用户注册登录系统,相关模块如下;
Froms模块,代替表单中的输入部分,对输入进行检查
User模块:代替上文中自己编写的UserModel模型,具有更多字段
auth模块:对用户输入进行验证
login模块:代替上文中session变量部分,django自动判断用户是否登陆或注销
下一篇文章将介绍如何应用Django自带模块构建用户注册登录系统。