python django用户登录系统_django实现注册、登录小系统

1.创建django项目:

命令:django-admin.py startproject todoManager

2.在此项目下创建apps应用

命令:python manage.py startapp apps

目录如下:

3.打开todoManager/todoManager/settings.py文件,将应用添加进去:

4.打开todoManager/todoManager/settings.py文件,设置连接数据库,以下连接的是MYSQL

5.打开todoManager/apps/models.py文件,添加如下内容,创建数据库,创建User表,用户名和密码两个字段。

6.进行数据库的同步:

查看django版本:输入python ,enter;import django  django.get_version()

我的版本是1.9之前的:在Django1.9之前,数据库同步只需要一条命令,那就是python  manage.py syncdb

后生成的 apps_user 表就是我们models.py 中所创建的User类。

7. 配置URL

7.1 打开todoManager/todoManager/urls.py

7.2 在todoManager/apps/目录下创建urls.py文件:

from django.conf.urls import patterns, url,include

from django.contrib import admin

from apps import views

urlpatterns = patterns(‘‘,

url(r‘^regist/$‘,views.regist,name = ‘regist‘),

url(r‘^login/$‘,views.login,name = ‘login‘),

url(r‘^index/$‘,views.index,name = ‘index‘),

url(r‘^logout/$‘,views.logout,name = ‘logout‘),

)

7.3 创建视图

打开todoManager/apps/views.py 文件:

#-*- coding: utf-8 -*-

from django.shortcuts importrender#Create your views here.#coding=utf-8

from django.shortcuts importrender,render_to_responsefrom django.http importHttpResponse,HttpResponseRedirectfrom django.template importRequestContextfrom django importformsfrom apps.models importUserfrom pymongo importMongoClientfrom django.views.decorators.csrf importcsrf_protect, csrf_exempt

mongo_client= MongoClient(‘192.168.86.126‘, 27017)#表单

classUserForm(forms.Form):

username= forms.CharField(label=u‘用户名‘,max_length=100)

password= forms.CharField(label=u‘密 码‘,widget=forms.PasswordInput())#注册#@csrf_protect

defregist(req):if req.method == ‘POST‘:

uf=UserForm(req.POST)ifuf.is_valid():#获得表单数据

username = uf.cleaned_data[‘username‘]

password= uf.cleaned_data[‘password‘]#添加到数据库

User.objects.create(username= username,password=password)return HttpResponse(‘regist success!!‘)else:

uf=UserForm()return render_to_response(‘regist.html‘,{‘uf‘:uf}, context_instance=RequestContext(req))#登陆#@csrf_protect

deflogin(req):

username= req.COOKIES.get(‘username‘,‘‘)if req.method == ‘POST‘:

uf=UserForm(req.POST)ifuf.is_valid():#获取表单用户密码

username = uf.cleaned_data[‘username‘]

password= uf.cleaned_data[‘password‘]#获取的表单数据与数据库进行比较

user = User.objects.filter(username__exact = username,password__exact =password)ifuser:#比较成功,跳转index

response = HttpResponseRedirect(‘/apps/index/‘)#将username写入浏览器cookie,失效时间为3600

response.set_cookie(‘username‘,username,3600)returnresponseelse:#比较失败,还在login

return HttpResponseRedirect(‘/apps/login/‘)else:

uf=UserForm()return render_to_response(‘login.html‘,{‘uf‘:uf}, context_instance=RequestContext(req) )#登陆成功#@csrf_protect

defindex(req):

username= req.COOKIES.get(‘username‘,‘‘)ifusername:

key_words_coll= mongo_client[‘yidong_zixun‘][‘key_words‘]

categorys={}

tasks={}

results= key_words_coll.find().batch_size(30)for result inresults:

category_id= result["category_id"]

category_name= result["category_name"]

_id= result["_id"]

name= result["name"]if notcategorys.has_key(category_id):

categorys[category_id]=category_nameif nottasks.has_key(category_id):

tasks[category_id]=[]

tasks[category_id].append({"task_id":_id,"name":name})else:

tasks[category_id].append({"task_id":_id,"name":name})return render_to_response(‘index.html‘ ,{‘username‘:username,‘categorys‘:categorys,"tasks":tasks}, context_instance=RequestContext(req))else:return HttpResponseRedirect(‘/apps/login/‘)#退出#@csrf_protect

deflogout(req):#response = HttpResponse(‘logout !!‘)

response = HttpResponseRedirect(‘/apps/login/‘)

response.delete_cookie(‘username‘)return response

View Code

7.4 创建模板

先在todoManager/apps/目录下创建templates目录,接着在todoManager/apps/templates/目录下创建base.html、regist.html、login.html 、index.html文件:

7.5设置模板路径

打开todoManager/todoManager/settings.py文件,在底部添加:

8.运行django

命令:python manage.py runserver 0.0.0.0:8000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值