django做的简单的注册登录功能
来源:互联网 发布:矩阵A2怎么算 编辑:程序博客网 时间:2024/05/18 00:09
初学python和django,做个简单的注册登录功能,供初学者参考。
首先是创建项目,django-admin.py startproject demo
接着创建应用,因为功能简单,所以只创建一个应用 django-admin startapp blog
说明下,数据库我用的是mysql,在settings.py里配置好相关内容,此处掠过。
接着开始代码部分!
首先是urls.py
from django.conf.urls.defaults import patterns, include, url# Uncomment the next two lines to enable the admin:from django.contrib import adminadmin.autodiscover()urlpatterns = patterns('', # Examples: # url(r'^$', 'First.views.home', name='home'), # url(r'^First/', include('First.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), url(r'^blog/register/$','blog.views.register'), url(r'^blog/login/$','blog.views.login'), url(r'^blog/index/$','blog.views.index'), url(r'^blog/regsuc/$','blog.views.regsuc'), url(r'^blog/logout/$','blog.views.logout'), url(r'^blog/changepwd/$','blog.views.changePwd'),)
因为第一次用,所以每一步都配置了相关的url。
接着是models.py,因为只有基本的一些信息,所以比较简单。
from django.db import modelsclass User(models.Model):username = models.CharField(max_length=30,unique=True)password = models.CharField(max_length=30)email = models.EmailField()tel = models.CharField(max_length=15)sex = models.CharField(max_length=10,null=True)name = models.CharField(max_length=15,null=True)age = models.IntegerField(null=True)def __unicode__(self):return self.username
在同步的时候首先要打开mysql服务,命令是service mysqld start
接着执行命令python manage.py syncdb来同步数据库内容
下面是主要的views.py的内容
from django.http import HttpResponse,HttpResponseRedirectfrom django.shortcuts import render_to_responsefrom django import formsfrom blog.models import User
#各个页面需要用到的数据模型class UserForm(forms.Form):username = forms.CharField()password = forms.CharField()email = forms.EmailField()tel = forms.CharField()class LoginForm(forms.Form):username = forms.CharField()password = forms.CharField()class Information(forms.Form):name = forms.CharField()sex = forms.CharField()age = forms.IntegerField()email = forms.EmailField()tel = forms.CharField()class ChangePwd(forms.Form):password = forms.CharField()newpassword = forms.CharField()#登录成功后的主页面def index(req):username = req.session.get('username')#user = User.objects.all()#filter(username__exact = username)#print userif req.method == 'POST':msg = Information(req.POST)if msg.is_valid():name = msg.cleaned_data['name']sex = msg.cleaned_data['sex']age = msg.cleaned_data['age']email = msg.cleaned_data['email']tel = msg.cleaned_data['tel']User.objects.filter(username__exact=username).update(name=name)User.objects.filter(username__exact=username).update(sex=sex)User.objects.filter(username__exact=username).update(age=age)User.objects.filter(username__exact=username).update(email=email)User.objects.filter(username__exact=username).update(tel=tel)return HttpResponseRedirect('/blog/index')else:return HttpResponseRedirect('/blog/index')else:name = User.objects.get(username__exact=username).namesex = User.objects.get(username__exact=username).sexage = User.objects.get(username__exact=username).ageemail = User.objects.get(username__exact=username).emailtel = User.objects.get(username__exact=username).telreturn render_to_response('index.html',{'username':username,'name':name,'sex':sex,'age':age,'email':email,'tel':tel})
#注册def register(req):if req.method == 'POST':uf = UserForm(req.POST)err = 'invalid content,please input again!'if uf.is_valid():username = uf.cleaned_data['username']password = uf.cleaned_data['password']email = uf.cleaned_data['email']tel = uf.cleaned_data['tel']if User.objects.filter(username__exact=username):return render_to_response('register.html',{'uf':uf,'err':err})user = User()user.username = usernameuser.password = passworduser.email = emailuser.tel = teluser.save()req.session['username'] = usernamereturn HttpResponseRedirect('/blog/regsuc')else:return render_to_response('register.html',{'uf':uf,'err':err})else:uf = UserForm()return render_to_response('register.html',{'uf':uf})
#登录及验证def login(req):if req.method == 'POST':uf = LoginForm(req.POST)if uf.is_valid():username = uf.cleaned_data['username']password = uf.cleaned_data['password']user = User.objects.filter(username__exact = username,password__exact = password)if user:req.session['username'] = usernamereturn HttpResponseRedirect('/blog/index')else:err = 'incorrect username or pwd,please input again.'return render_to_response('login.html',{'err':err})else:uf = UserForm()return render_to_response('login.html',{'uf':uf})
#注册成功页面def regsuc(req):username = req.session.get('username')return render_to_response('regsuc.html',{'username':username})
#登出def logout(req):del req.session['username']return HttpResponseRedirect('/blog/login')
#修改密码def changePwd(req):username = req.session.get('username')if req.method == 'POST':cp = ChangePwd(req.POST)if cp.is_valid():#print 'zhixing is valid'password = cp.cleaned_data['password']user = User.objects.filter(username__exact = username,password__exact = password)if user:#print 'zhixing user'newpassword = cp.cleaned_data['newpassword']User.objects.filter(username__exact = username).update(password=newpassword)return HttpResponseRedirect('/blog/index')else:err = 'old password was incorrect,please check.'return render_to_response('changepwd.html',{'err':err,'username':username})else:#print 'zhixing not valid'err = 'invalid content,please input again.'return render_to_response('changepwd.html',{'err':err,'username':username})else:#print 'zhixing not POST'cp = LoginForm()return render_to_response('changepwd.html',{'username':username})
最后就是html文件的前端展示了,因为我前端不熟悉,所以做的很难看,只有简单的html代码。贴在下一篇,有兴趣可以直接拷贝了看效果。
- django做的简单的注册登录功能
- XMPP实现简单的登录注册功能
- javaweb简单的登录注册功能实现
- javaweb简单的登录注册功能实现
- javaweb简单的登录注册功能实现
- Servlet简单实现的注册登录功能
- javaweb简单的登录注册功能实现
- 使用JDBC做一个简单的登录,注册页面!
- 09 实现Django自带的注册\登录\退出登录(表单)功能
- php 简单的注册登录功能的实现
- 在web中实现简单的注册,登录功能
- 用php实现简单的登录和注册功能
- 用springmvc实现简单的注册、登录功能
- 简单的登录、注册以及带有验证码功能
- 简单的纯java语言登录和注册功能
- 171210之JavaWeb简单的登录注册功能实现
- [Django]SE项目回忆录(二)-注册/登录功能的实现及细节
- 简单的用户注册登录
- 线程并发
- Android2.2中drawable(hdpi,ldpi,mdpi)、android :gravity区别
- struts2 请求原理
- mark微信公众账号教程
- IntelliJ Idea 常用快捷键列表
- django做的简单的注册登录功能
- JQerry
- mysql 子查询与join性能比较
- Scala: 偏函数(PartialFunction) && 偏应用函数(Partial Applied Function)
- PL/SQL 下 Command window 与 SQL window 的区别
- 方法传递参数的方式
- uva 534
- 查看本机端口
- hadoop配置 - Datanode GC优化一则