随着互联网的普及和移动设备的广泛使用,越来越多的服务和功能被移植到了线上。其中,楼签到小程序作为一种便捷的工具,被广泛应用于楼宇管理、物业服务等领域。本文将详细介绍如何制作一个楼签到小程序,从设计到优化,为您提供全面的指导。
设计页面
首先,我们需要选择一个合适的模板,并根据具体需求来设计页面。这个过程主要包括以下步骤:
1.1登录页面:添加登录功能,允许用户通过微信登录,简化注册流程。
1.2注册页面:允许新用户注册,并提供找回密码功能。
1.3楼宇列表页面:展示所有可用的楼宇,方便用户查找。
1.4签到页面:设计一个简洁明了的签到页面,以便用户快速完成签到操作。
2.编写代码
接下来,我们需要使用适当的编程语言来编写签到小程序的代码。考虑到微信小程序的平台特性,建议使用JavaScript、HTML和CSS来完成。
2.1 JavaScript:使用JavaScript编写逻辑代码,处理用户登录、注册、查找楼宇及签到等操作。
2.2 HTML:使用HTML来构建小程序的结构,包括登录、注册、楼宇列表和签到等页面的布局。
2.3 CSS:使用CSS来美化页面的外观,提升用户体验。
3.测试效果
完成代码编写后,我们需要在微信或浏览器中打开签到小程序,测试其功能和界面显示是否符合预期。这个阶段主要关注以下几个方面:
3.1功能测试:确保小程序的所有功能都能正常运行,例如登录、注册、查找楼宇和签到等。
3.2界面测试:检查页面的布局、颜色、字体等外观元素是否满足设计要求。
3.3兼容性测试:确保小程序在不同设备、不同浏览器上都能正常运行。
4.优化体验
根据测试结果,我们可能会发现一些问题或不足之处。这时,我们就需要进行优化,以提升用户的使用体验。以下是一些常见的优化方法:
4.1响应速度优化:通过优化代码和减少不必要的网络请求,提高小程序的响应速度。
4.2用户体验优化:调整界面布局、简化操作流程,使小程序更易于使用。
4.3功能完善:根据用户反馈和实际需求,添加或改进一些功能,提高小程序的实用性。
4.4安全性提升:加强小程序的安全防护,防止用户数据泄露和恶意攻击。
5.总结
楼签到小程序的制作并非难事,只需按照设计好的页面模板,使用合适的编程语言编写代码,然后进行必要的测试和优化,就能制作出符合预期的签到小程序。在实际制作过程中,关注用户需求和体验是关键,只有不断优化和完善,才能打造出高质量的小程序应用。
预约角色活动已经持续了近两个礼拜,相信有很多小伙伴成功到达了100级。不知有没有小伙伴们察觉到,我们起初建一个角色,只是觉得这个职业帅,技能酷炫,亦或者是幻神职业,很少有玩家为了建立角色而建立角色,基本上近几年的版本都是吃上版本的老角色的底继续游戏的。一般的团本活动之类的任务都完成不了,更别说去建立新角色,哪有这个精力呀。
因此不知从何时起,DNF开始兴起预约角色这一说,成长型不死鸟武器,传承/圣物防具,各种副产品(仓库升级券,背包升级券等)似乎都成了标配。而这次的预约角色相比以往,对于账号内的角色帮助不大,没有账号绑定类奖励,但是对于本职业的帮助客观,至少一身的换装省了不少事。似乎玩家对于预约升级已经成为了常态,不过这里也有很多细节,学问大着呢。
NO1、职业的选择
在三觉活动的当口,我认为应该建立男女鬼剑士角色,不仅能提前享受到三觉技能的视觉伤害的双重享受,也可以获取三觉活动所带来的福利。具体的大家都知道在这里不再赘述。如果玩家对男女鬼剑士不感冒或者跟我一样,男女鬼剑士都有了,那么建议选择奶系职业,因为无论任何版本,奶系职业还是比较吃香,而且预约的过程中也会有升级券,对于奶系职业也是一个帮助,不过需要说明的是,预约活动赠送的换装对奶不适用,很是浪费,而且95级之后的升级对于奶系职业来说也是比较困难的。
除此之外,玩家也可以根据自己的想法大胆的去建立职业,比如平时想玩但是害怕下水道升级困难提不起劲头的,这个时候便可以趁着活动热乎升级体验,也是一个很好的想法。
比如可以趁机体验一把下水道三帅……
No2、升级的窍门
对于预约角色升级,我之前在文章里说过,可以结合冒险团的升级券混着来。具体如下:
13级开始吃冒险团升级券到20级;
23级开始吃冒险团升级券到30级;
33级开始吃冒险团升级券到40级;
45级开始吃冒险团升级券到50级;
64级开始吃冒险团升级券到70级;
74级开始吃升级礼盒的升级券升级到75级;
79级开始吃升级礼盒的升级券升级到80级;
83级开始吃一张冒险团升级券升级到84级,然后吃一张升级礼盒的升级券升级到85级,在吃一张冒险团升级券升级到86级;
86级吃升级礼盒以及冒险团升级券升级到90级;
91级吃巴斯泰拖周常地下城的经验胶囊到92级;
92级吃升级礼盒以及冒险团升级券升级到95级;
这里边是升级券的使用流程,如果在这个网址https://dnf.qq.com/cp/a20200228video/index.html签到,会额外获得两张升级券以及每天一瓶三倍经验药水。如此一来,吃升级券的方式会有略微的调整,影响不大。
对于任务,这里边有个小建议,我之前说过95级之后的主线任务只有奇数等级才有,而95级之前的主线任务简直是多如牛毛,因此我的建议是,当角色升级到90级时候点击“完成过去任务”,然后通过手段升级到95之后,主线任务栏里面的任务等级还是90级左右的任务,这时千万不要点击任务完成,经过测试,在三倍药水的加持下,无论是通关经验,单个怪物经验,还是任务经验与95级的经验相比,两者相差无几,
而95级之后又是奇数等级有主线任务,并且95级之后的地图难度肯定上升,当你升级到96级没有主线任务时候,你觉得预约角色的装备刷得过智慧的引导吗?我想答案是肯定的,既然我们的目的是为了升级,那就选择一个最优方案——95级做90级任务,简单又实惠。
另外,前期的低等级时候升级谈话任务如果NPC横跨距离太远,而自身又有双倍药的加持,为了不浪费时间,可以直接选择完成任务,毕竟谈话的经验实在是微乎其微。
No3、装备的选择
不知道有没有玩家跟我有一样的感受,就是前期90级之前,做剧情任务时候,我们预约角色即使是身穿圣物,手持幸运星武器,但依旧是斩荆披棘,所向披靡。不知怎么一到90级之后,感觉耐久大不如以前,以前一个技能过图,现在是一套技能难死,哎,装备容易受潮,年轻人,得节制……
咳咳,回归正题,这是个很严重的问题,且不说以后刷智慧的引导,即使是普通的升级都很困难,至少这一关得过去。首先我想到的是哈林史诗,但是上文我说了,我既然选择做90级主线任务,哈林史诗又从何来?总不能跨界吧?那太没必要了。别急,我们有别的方案。
我们可以用异形结晶来兑换哈林武器,在红鼻子那里,900个便可以兑换,虽然说一把武器不能逆天改命,但是武器,绝对是一个职业所有装备中最举足轻重的一个。我们在95版本积攒了很多账号绑定的异形结晶,这时候派上了大用场了。
除此之外,我们还可以跨界100级粉装,我们都知道,100级的粉装属性对小号来说还是很不错的,我们可以用大号去刷根特皇宫,其中能在图里爆出,也可以兑换。然后去马杰洛那里跨界。拿首饰为例,跨界需要140个神器灵魂,
而1个神器灵魂需要15个稀有灵魂兑换,经过测试,100级左右的假紫大概能分解5个稀有灵魂,大致上需要420个假紫才能构成这些个神器灵魂。我们也可以在灵魂之冢分解粉装武器,
在刷图中的蓝白装备也可以分解,一个是为了探索活动,一个是为了可以兑换神器灵魂,总之这是一个漫长的过程,不用可以而为之,如果玩家物品栏里的神器灵魂库存较多,这是个不错的选择。
活动赠送的装备通关时间如下:
在跨界两件100级粉首饰以及做了一把95级哈林史诗武器后通关时间如下:
怎么样,明显快了很多了吧.......嗯?怎么突然感觉哪里不对呢?
大致上总结了对预约角色在升级道路上的一些注意事项,玩家们还有什么需要补充的吗?赶快在留言区留言吧。
随着科技的进步,人脸识别技术已经深入到各个领域中。在教育、企业、会议等场合,传统的签到方式如手工签名、刷卡等存在诸多问题,如容易丢失、容易被伪造等。因此,人脸识别签到系统应运而生,为各类场合提供了更加便捷、高效的签到方式。这种签到方式不仅方便快捷,而且安全性更高,能够有效地避免传统签到方式的弊端。基于人脸识别的签到系统是利用WEB框架做人员管理,注册录入相关人员的信息,再利用摄像机采集现成人脸的静态图像,并通过定点方式检测人脸特征中的关键信息,把所有信息存储到数据库中,最后用QT界面再终端进行人脸识别用同样的算法识别人脸并和数据库中的人脸信息进行比对,来判断参会人员是否为注册人员。如果识别成功,系统将自动完成签到操作并将签到记录存储在数据库中。
后台:django
前端: html javascript
数据库:mysql
人脸检测算法:dlib
人脸模型算法: 卷积神经FACENET(pytorch、tensorflow实现)
用户表:
签到记录表:
话不多说,以下是部分实施过程,篇幅有限,有兴趣的朋友可私信找我要项目全部代码或者根据需要定制你想要的系统:
1.安装Django。您可以在终端或命令提示符下使用以下命令安装最新版本的Django:
pip install django
#安装'pymysql
pip install pymysql
2.创建Django项目。在终端或命令提示符下,转到要创建项目的目录,并运行以下命令:
#其中,“HuiChang”是您想要为项目选择的名称。
#此命令将创建一个名为“HuiChang”的新目录,
#并在其中创建一个名为“manage.py”的文件。
django-admin startproject HuiChang
3.创建应用程序。应用程序是Django项目的组成部分,每个应用程序都可以包含特定于该应用程序的视图、模板和模型。在项目目录中运行以下命令以创建新的应用程序
#其中,“app_huichang”是您想要为应用程序选择的名称。
#此命令将创建一个名为“app_huichang”的新目录,
#并在其中创建一个名为“models.py”的文件。
python manage.py startapp app_huichang
4.配置mysql数据库。Django使用默认的SQLite数据库配置。在“settings.py”文件中,确保DATABASES设置为以下内容:
# mysql 配置
DATABASES={
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'douban',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
'TEST':{
'CHARSET':'utf8',
'COLLATION':'utf8_general_ci'
},
}
}
5.数据库创建
用户权限表:
在app_huichang的新目录里打开models.py,创建一个User、Role、Permission类,分别是用户信息表、身份表、权限表。定义数据库相关字段:
# 创建用户表
class User(models.Model):
name=models.CharField(max_length=32, verbose_name='用户名称')
password=models.CharField(verbose_name='密码',max_length=64,default="")
number=models.IntegerField(default=0)
huichang=models.CharField(max_length=32, verbose_name='会场', default="")
zuowei=models.CharField(max_length=32, verbose_name='座位',default="")
face_encoding=models.CharField(max_length=5000, verbose_name='人脸信息',default="")
# 与身份表的多对多外键字段,假设可以跨身份,跨部门
roles=models.ManyToManyField(to='Role')
def __str__(self):
return self.name
# 创建身份表
class Role(models.Model):
title=models.CharField(max_length=32, verbose_name='身份名称')
# 和权限表的多对多关系字段,一个身份可以有多个权限,一个权限也可以被多个身份拥有
permissions=models.ManyToManyField(to='Permission')
def __str__(self):
return self.title
# 创建权限表
class Permission(models.Model):
name=models.CharField(max_length=32, verbose_name='权限名称')
url=models.CharField(max_length=32, verbose_name='权限url')
def __str__(self):
return self.name
class Userinfo(models.Model):
first_name=models.CharField(max_length=32, verbose_name='姓')
last_name=models.CharField(max_length=32, verbose_name='名')
phone=models.IntegerField()
addr=models.CharField(max_length=64, verbose_name='住址')
签到信息表:
class qiandao(models.Model):
name=models.CharField(max_length=32, verbose_name='姓')
number=models.IntegerField(default=0)
huichang=models.CharField(max_length=32, verbose_name='会场', default="")
zuowei=models.CharField(max_length=32, verbose_name='座位', default="")
Time=models.DateTimeField('签到时间')
biaoshi=models.CharField(max_length=32, verbose_name='迟到标志', default="")
6.在模型文件中定义完类后,需要配置模型,在项目的配置文件setting.py中修改INSTALLED_APPS 中添加应用名称"app_huichang"
INSTALLED_APPS=[
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
'app_huichang'
]
在admin.py文件中配置在后台显示的数据模型字段
admin.site.register(User)
admin.site.register(Role)
admin.site.register(Permission)
7.运行迁移。在终端或命令提示符下,进入项目目录,并运行以下命令以创建数据库表格:
python manage.py makemigrations app_huichang
python manage.py migrate
创建超级管理员来修改用户权限:
8.注册功能:
<div class="auth-form-light text-left py-5 px-4 px-sm-5">
<div class="brand-logo">
<h1>人脸签到系统</h1>
</div>
<h4>账号注册</h4>
<h6 class="font-weight-light">请输入相关信息</h6>
<form class="pt-3" action="{% url 'register' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<input type="text" name="user" class="form-control form-control-lg" id="exampleInputUsername1" placeholder="账号" value="{% if form1.user.value %} {{ form1.user.value }} {% endif %}">
{{ form1.errors.user.0 }}
</div>
{% if errMsg %}
<h4>{{ errMsg }}</h4>
{% endif %}
<div class="form-group">
<input type="email" name="email" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="邮箱" value="{% if form1.email.value %} {{ form1.email.value }} {% endif %}">
{{ form1.errors.email.0 }}
</div>
<div class="form-group">
<input type="text" name="number" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="参会证号" value="{% if form1.number.value %} {{ form1.number.value }} {% endif %}">
{{ form1.errors.number.0 }}
</div>
{% if errMsg1 %}
<h4>{{ errMsg1 }}</h4>
{% endif %}
<div class="form-group">
<input type="text" name="Class" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="会场名" value="{% if form1.Class.value %} {{ form1.Class.value }} {% endif %}">
{{ form1.errors.Class.0 }}
</div>
<div class="form-group">
<input type="text" name="sushe" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="座位号" value="{% if form1.sushe.value %} {{ form1.sushe.value }} {% endif %}">
{{ form1.errors.sushe.0 }}
</div>
<div class="form-group">
<input type="password" name="password" class="form-control form-control-lg" id="exampleInputPassword1" placeholder="密码">
{{ form1.errors.password.0 }}
</div>
<div class="form-group">
<input type="password" name="rePassword" class="form-control form-control-lg" id="exampleInputPassword2" placeholder="重复密码">
{{form1.errors.rePassword.0}}
</div>
<div class="form-group">
<label for="exampleInputConfirmPassword1">上传人脸照片</label>
<input type="file" name="myfile" class="form-control file-upload-info" placeholder="Upload Image">
{% if err %}
<h4>{{ err }}</h4>
{% endif %}
</div>
{% if error %}
<h3>{{ error }}</h3>
{% endif %}
<div class="mt-3">
<button type="submit" class="btn btn-block btn-primary btn-lg font-weight-medium auth-form-btn">注册</button>
</div>
<div class="text-center mt-4 font-weight-light">
已有账号? <a href="/login" class="text-primary">去登陆</a>
</div>
</form>
</div>
8.登录功能:
<div class="auth-form-light text-left py-5 px-4 px-sm-5">
<div class="brand-logo">
<h2>人脸签到系统</h2>
</div>
<h4>你好! 欢迎登陆</h4>
<h6 class="font-weight-light"></h6>
<form class="pt-3" action="{% url 'login' %}" method="post">
{% csrf_token %}
<div class="form-group">
<input type="username" name="username" class="form-control form-control-lg" id="exampleInputEmail1" placeholder="账号">
</div>
<div class="form-group">
<input type="password" name="password" class="form-control form-control-lg" id="exampleInputPassword1" placeholder="密码">
</div>
{% if errMsg %}
<h4 style="background-color: #fef0f0";>{{ errMsg.error }}</h4>
{% endif %}
<div class="mt-3">
<button type="submit" class="btn btn-block btn-primary btn-lg font-weight-medium auth-form-btn">登陆</button>
</div>
<div class="text-center mt-4 font-weight-light">
没有账号? <a href="/register" class="text-primary">去注册</a>
</div>
</form>
</div>
9.权限分配:
10.主页面:
普通权限:
管理权限:
11.前端识别程序UI设计:
12.签到记录:
12.修改信息页面:
1.启动django系统出现报错:
解决方法:
pip install mysqlclient
安装失败:
经过多方查询,最终解决方法为:
#项目(settings.py同级)目录中__init__.py中添加
import pymysql
pymysql.install_as_MySQLdb()
2.注册上传人脸图片报错:
解决方法:更改上传图片文件路径
3.上传人脸图片报错:
原因:CascadeClassifier的文件路径错误
*请认真填写需求信息,我们会在24小时内与您取得联系。