400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

Dragonboard 410c局域网用户管理系统实现详解

随着互联网的普及和发展,网络已经成为人们生活中不可或缺的一部分。在局域网环境下,搭建一个属于自己的Web服务器,可以实现内部资源共享和内部管理。本文将基于PythonDjango框架,为大家分享如何构建自己的局域网web服务器,并在此基础上扩展建立一个局域网的用户管理系统
一、搭建局域网web服务器
1. 环境准备
首先,需要确保你的电脑上安装了Python环境,并且安装了Django框架。如果没有安装,可以通过Python官网或Django官网下载并安装。
2. 创建项目
打开命令行,输入以下命令创建一个新的Django项目:
``` django-admin startproject myproject ```
3. 创建应用
在项目目录下,输入以下命令创建一个新的应用:
``` python manage.py startapp online ```
4. 编写视图
在`online/views.py`文件中,编写视图函数。例如,创建一个注册视图和一个登录视图,用于处理用户的注册和登录请求。
5. 编写URL
在`online/urls.py`文件中,编写URL路由,将视图函数与URL路径关联起来。
6. 编写模板
在`online/templates`目录下,编写html模板文件。例如,创建一个注册页面模板和一个登录页面模板。
7. 运行服务器
在项目目录下,输入以下命令启动服务器:
``` python manage.py runserver ```
现在,你已经在局域网环境下搭建了一个web服务器。你可以通过浏览器访问`HTTP://127.0.0.1:8000/`来查看你的web服务器。
二、建立局域网用户管理系统
1. 创建用户模型
在`online/models.py`文件中,创建一个用户模型,用于存储用户的注册信息。例如,创建一个名为`User`的模型,包含用户名、密码等字段。
2. 扩展视图功能
在`online/views.py`文件中,扩展视图功能。例如,在注册视图中,将用户信息保存到数据库;在登录视图中,验证用户名和密码是否正确。
3. 扩展模板功能
在`online/templates`目录下,扩展HTML模板文件。例如,创建一个用户列表模板,用于显示所有注册用户的信息。
4. 运行服务器
在项目目录下,重新输入以下命令启动服务器:
``` python manage.py runserver ```
现在,你已经在局域网环境下搭建了一个具有用户管理功能的web服务器。你可以通过浏览器访问`http://127.0.0.1:8000/`来查看你的web服务器,并进行用户注册和登录操作。
三、优化与拓展
1. 安全性优化
为了提高局域网web服务器的安全性,可以在用户密码存储时使用哈希加密,防止密码泄露。此外,还可以实现用户权限控制,限制不同用户的访问权限。
2. 功能拓展
为了丰富局域网web服务器的功能,可以添加更多模块,如论坛、博客、文件管理等。此外,还可以根据实际需求,自定义更多的用户模型,如教师、学生、职员等,实现更加精细的用户管理。
3. 界面优化
为了提升用户体验,可以优化HTML模板文件,使其更加美观、易用。此外,还可以使用前端框架,如Bootstrap或Vue.js,进一步提升界面交互效果。
通过本文的分享,相信你已经学会了如何在局域网环境下搭建一个具有用户管理功能的web服务器。在此基础上,你可以根据自己的需求,不断优化和拓展功能,使其更加完善。希望这篇文章能够帮助你更好地了解局域网web服务器搭建和用户管理。

一、前言

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

Dragonboard 410c局域网用户管理系统实现详解

二、代码分析

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'^stat ic/(?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

【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

局域网相关文章

服务电话:
400-035-6699
企服商城