Dragonboard410c服务器系列二之局域网用户系统

本文介绍如何使用Python的Django框架构建局域网内的用户管理系统,包括用户注册、登录及退出等功能,并提供了详细的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.前言

在上一篇http://blog.youkuaiyun.com/ad3600/article/details/53665965文章中,博主给大家分享了如何基于410c利用python的Django框架去构建自己的局域网web服务器,今天我们在其基础上再扩展建立一个局域网的用户管理系统

二.代码分析

1.代码框架

图1 代码框架


2.主代码分享:


2.1.online/view.py

#coding=utf-8
from django.shortcuts import render,render_to_response
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext
from django import forms
from online.models import User
from django.contrib.auth import authenticate, login
#表单
class UserForm(forms.Form): 
    username = forms.CharField(label='用户名',max_length=100)
    password = forms.CharField(label='密码',widget=forms.PasswordInput())

    #def getuser(forms):
    #    return forms.username
 #   password1 = forms.CharField(label='重复密码',widget=forms.TextInput())
 #   loginaddr="http://127.0.0.1:8000/online/login/"
 #   registaddr="http://127.0.0.1:8000/online/regist/"

#注册
def regist(req):
    if req.method == 'POST':
        uf = UserForm(req.POST)
        if uf.is_valid():
            #获得表单数据
            username = uf.cleaned_data['username']
            password = uf.cleaned_data['password']
            password1 = req.POST['password1']
            #比较数据库中是否已有用户
            #user = myUser.objects.all().filter(username = username)
            #print(user)
            if User.objects.filter(username =username).exists():
                 return render_to_response('registfaild.html',{'uf':uf}, context_instance=RequestContext(req))
            else:
                if password1==password:
                    # User.objects.create(username= username,password=password)#添加用户进数据库
                    # profile=UserProfile()#e*************************
                    # profile.user_id=user.id
                    # profile.phone=phone
                    # profile.save()

                    # user=User()
                    # user.username=username
                    # user.password=password
                    # user.save()
                     user = User.objects.create_user(username,password)
                     user.save()
                     response = HttpResponseRedirect('/online/registsuccee/')
                     return response
                else:
                     return render_to_response('registfaild1.html',{'uf':uf}, context_instance=RequestContext(req))
    else:
        uf = UserForm()
    return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))

#登陆
def login(req):
#    getAllUser(req)
    if req.method == 'POST':
        uf = UserForm(req.POST)
        if uf.is_valid():
                #获取表单用户密码
            username = uf.cleaned_data['username']
            password = uf.cleaned_data['password']

                #获取的表单数据与数据库进行比较
            user = authenticate(username=username, password=password)
            if user is not None:
                #比较成功,跳转index
                response = HttpResponseRedirect('/online/index/')
                #将username写入浏览器cookie,失效时间为3600
                response.set_cookie('username',username,3600)
                return response
            else:
                 #比较失败,跳转loginfaild
                return render_to_response('loginfaild.html',{'uf':uf},context_instance=RequestContext(req))
    else:
        uf = UserForm()
    return render_to_response('login.html',{'uf':uf},context_instance=RequestContext(req))



#def loginfaild(req):
#    response = login(req)
#    return response
#
def registsuccee(req):
   if req.method == 'POST':
        uf = UserForm(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:
                #比较成功,跳转index
                response = HttpResponseRedirect('/online/index/')
                #将username写入浏览器cookie,失效时间为3600
                response.set_cookie('username',username,3600)
                return response
            else:
                 #比较失败,跳转loginfaild
                return render_to_response('loginfaild.html',{'uf':uf},context_instance=RequestContext(req))
   else:
        uf = UserForm()
        #return render_to_response('registfaild.html',{'uf':uf},context_instance=RequestContext(req))
   return render_to_response('registsuccee.html',{'uf':uf},context_instance=RequestContext(req))
#
#def registfaild(req):
#    response = regist(req)
#    return response
#
#def registfaild1(req):
#    response = regist(req)
#    return response


#登陆成功
def index(req):
    username = req.COOKIES.get('username','')
    user_list=getAllUser(req)
    if req.method == 'POST':
        key_user=req.POST.get('username')
        key_input=req.POST.get('text')
        print(key_user)
        print(key_input)
        if key_input=='text':
            print('please input text')
            response = HttpResponseRedirect('/online/text/')
            #将username写入浏览器cookie,失效时间为3600
            response.set_cookie('username',username,3600)
            return response
        elif key_input=='video':
            print('please input video')
            response = HttpResponseRedirect('/online/video/')
            #将username写入浏览器cookie,失效时间为3600
            response.set_cookie('username',username,3600)
            return response
        else:
            return render_to_response('loginsuccee.html' ,{'user_list':user_list,'username':username},)

 #   user_sum=user_list.count()
 #   if req.method == 'POST':
#        if req.POST['username']=="ad3600":
 #       if req.post.get('text')=="video":

    return render_to_response('loginsuccee.html' ,{'user_list':user_list,'username':username},)

#退出
def logout(req):
    response = login(req)
    response.delete_cookie('username')
    return response
    #response = HttpResponse('logout !!')
    #清理cookie里保存username
   # response.delete_cookie('username')
   # return response

def getAllUser(req):
   user_list=User.objects.all().values('username')
   user_sum=User.objects.all().values('username').count()
   print(user_list)
   print(user_sum)
   return user_list

def text(req):#输入文本处理
     username = req.COOKIES.get('username','')
     if req.method == 'POST':
        text = req.POST['text_input']
        print(req.user.is_anonymous())
        req.user.text=text
        req.user.username=username
        print(username)
        print(req.user.get_full_name())
        print(req.user.text)
        req.user.save()
       # print(dir(MyUser))
     return render_to_response('text.html',)


def video(req):#输入视频处理
    return req



def delete():
    User.objects.filter().delete()


2.2.online/urls

from django.conf.urls import patterns, url
from online import views
import register.settings

 
urlpatterns = patterns('',
    url(r'^$', views.login, name='login'),
    url(r'^login/$',views.login,name = 'login'),
    url(r'^loginfail/$',views.login,name = 'loginfail'),
    url(r'^regist/$',views.regist,name = 'regist'),
    url(r'^registfaild/$',views.regist,name = 'regist'),
    url(r'^registfaild1/$',views.regist,name = 'regist'),
    url(r'^registsuccee/$',views.registsuccee,name = 'registsuccee'),
    url(r'^text/$',views.text,name = 'text'),
    url(r'^video/$',views.video,name = 'video'),
    url(r'^index/$',views.index,name = 'index'),
    url(r'^logout/$',views.logout,name = 'logout'),
    url(r'^static/(?P.*)$', 'django.views.static.serve',{ 'document_root': register.settings.STATIC_URL }),
)


2.3.online/modes

#coding:utf8
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.conf import settings
# Create your models here.后台数据保存
# Create your models here.
class User(models.Model):
#    nickname = models.CharField(max_length=64, blank=False)
#    author = models.ForeignKey(settings.AUTH_USER_MODEL)
    text = models.CharField(max_length=50)
    email= models.EmailField()
#    desc = models.TextField()
#    qq = models.CharField(u'qq号', max_length=16)
    username = models.CharField(max_length=50)
    password = models.CharField(max_length=50)

    def __unicode__(self):
        return self.username

#class UserAdmin(admin.ModelAdmin):
#    list_display = ('username','password')
# Create your models here.



#class MyUser(AbstractUser):
#    qq = models.CharField(u'qq号', max_length=16)
#    weChat =models.CharField(u'微信账号', max_length=100)
#    mobile =models.CharField(u'手机号', primary_key=True, max_length=11)
#    identicard =models.BooleanField(u'身份证认证', default=False)                             #默认是0,未认证, 1:身份证认证, 2:视频认证
#    refuserid = models.CharField(u'推荐人ID', max_length=20)
#    Level = models.CharField(u'用户等级', default='0', max_length=2)                        #默认是0,用户等级0-9
#    vevideo = models.BooleanField(u'视频认证', default=False)                      #默认是0,未认证。 1:已认证
#    Type =models.CharField(u'用户类型', default='0', max_length=1)                          #默认是0,未认证, 1:刷手 2:商家
#
#    def __str__(self):
#        return self.username


三.实测效果



图2 登录页面



图3 注册页面


四.例程分享:http://pan.baidu.com/s/1dFOKoI9


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值