您现在的位置是:主页 > news > 做网站图片切图是什么/优化步骤
做网站图片切图是什么/优化步骤
admin2025/5/21 7:56:55【news】
简介做网站图片切图是什么,优化步骤,网站开发是做什么的,网站建设学校第四步:网络验证的逻辑开发1.将model注册到adminx.py中1.在apps/yanzheng目录下新建admin.py 文件,添加代码:importxadminfrom xadmin importviewsfrom .models importCardsclassBaseSetting(object):"""引入更换主题功能&quo…
第四步:网络验证的逻辑开发
1.将model注册到adminx.py中
1.在apps/yanzheng目录下新建admin.py 文件,添加代码:
importxadminfrom xadmin importviewsfrom .models importCardsclassBaseSetting(object):"""引入更换主题功能"""enable_themes=True
use_bootswatch=TrueclassGlobalSettings(object):"""页头和页脚"""site_title= "雪易网络验证后台"site_footer= "雪易网络验证"
#menu_style = "accordion"#如果加上,后台的菜单会变成下拉式
classCardsAdmin(object):
list_display= ['user', 'kacode', 'time', 'is_used']
search_fields= ['user', 'kacode', 'time', 'is_used']
list_filter= ['user', 'kacode', 'time', 'is_used']
xadmin.site.register(Cards, CardsAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)
2.修改apps/yanzheng/apps.py为:
from django.apps importAppConfigclassYanzhengConfig(AppConfig):
name= 'yanzheng'verbose_name='验证'
这时,再重启项目,登录到http://127.0.0.1:8000/xadmin/ 发现数据表已经出现在了后台菜单中,同时页头和页尾也变了。
2.网络验证几个功能的开发:
功能分析:
1、注册功能
2、登录功能
3、心跳包功能
4、生产充值卡密功能
5、充值功能
6、修改密码功能
显然是要跨站post的,所以到settings.py中把csrf关了:
MIDDLEWARE =['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',#屏蔽掉下面这一行,跨站post才可以正常进行,不然会403错误
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]
1.注册功能:
1.在apps/yanzheng/目录下新建form.py文件用于post提交上来数据的初步验证,写入验证注册信息的代码:
from django importformsfrom .models importUserProfileclassRegisterForm(forms.Form):"""注册信息的验证"""uid= forms.CharField(required=True,
max_length=150,
error_messages={'required': '用户名不能为空.','max_length':'用户名过长!'})
pwd= forms.CharField(required=True,
max_length=128,
error_messages={'required': '密码不能为空.','max_length': "密码过长!"})defclean(self):"""查看用户名是否已经被占用"""uid=self.cleaned_data.get('uid','')
u=UserProfile.objects.filter(username=uid)ifu:raise forms.ValidationError('此用户名已经被占用')else:return self.cleaned_data
2.在apps/yanzheng/views.py中写相关逻辑代码:
from django.views.generic importViewfrom .form importRegisterFormfrom django.shortcuts importrender,redirectfrom django.http importHttpResponsefrom .models importUserProfile,importreimporttimeimportdatetimeclassRegisterView(View):"""注册"""
defpost(self,request):
reg_form=RegisterForm(request.POST)ifreg_form.is_valid():
uid=request.POST.get('uid','')
pwd=request.POST.get('pwd','')
u=UserProfile()
u.username=uid
u.password=pwd
u.save()
msg="注册成功!"
else:
msg=str(reg_form.errors)if re.findall("注册成功!",msg):returnHttpResponse(0)elif re.findall("此用户名已经被占用",msg):return HttpResponse(1)elif re.findall("用户名不能为空",msg):return HttpResponse(2)elif re.findall("用户名过长",msg):return HttpResponse(3)elif re.findall("密码不能为空",msg):return HttpResponse(4)elif re.findall("密码过长",msg):return HttpResponse(5)else:return HttpResponse(6)
3.在urls.py中配置路由:
#......
from yanzheng.views importRegisterView
urlpatterns=[#......
path('register',RegisterView.as_view()),
]
2.登录功能:
1.在form.py 中增加对跟登录有关的post过来的数据的验证代码:
classLoginForm(forms.Form):"""登录"""uid= forms.CharField(required=True,error_messages={'required': '用户名不能为空.',})
pwd= forms.CharField(required=True,error_messages={'required': '密码不能为空.',})
2.在views.py中添加登录相关的逻辑代码:
from django.views.generic importViewfrom .form importRegisterForm,LoginFormfrom django.shortcuts importrender,redirectfrom django.http importHttpResponsefrom .models importUserProfileimportreimporttimeimportdatetimeclassLoginView(View):"""登录"""
defpost(self,request):
login_form=LoginForm(request.POST)iflogin_form.is_valid():
uid=request.POST.get('uid','')
pwd=request.POST.get('pwd','')
u=UserProfile.objects.filter(username=uid).first()if u.password==pwd:if notu.is_ban:
u_endtime_stamp=int(time.mktime(u.end_time.timetuple()))
nowtime_stamp=int(time.time())if u_endtime_stamp>nowtime_stamp:
u.end_time=u.end_time.strftime('%Y-%m-%d %H:%M:%S')
msg="登录成功,到期时间:"+u.end_timeelse:
msg="该账户已无剩余时间,请充值!"
else:
msg='此账户已经被冻结'
else:
msg='密码错误'
else:
msg=str(login_form.errors)if re.findall("登录成功",msg):returnHttpResponse(msg)elif re.findall("请充值",msg):return HttpResponse(11)elif re.findall("此账户已经被冻结",msg):return HttpResponse(12)elif re.findall("密码错误",msg):return HttpResponse(13)elif re.findall("用户名不能为空",msg):return HttpResponse(14)elif re.findall("密码不能为空",msg):return HttpResponse(15)else:return HttpResponse(16)
3.在urls.py中配置路由:
#......
from yanzheng.views importRegisterView,LoginView
urlpatterns=[#......
path('login',LoginView.as_view()),
]
3.心跳包功能:
1.这个虽然也是post数据,但是个人感觉没必要写form
2.在views.py中相关逻辑代码:
from django.views.generic importViewfrom django.http importHttpResponsefrom .models importUserProfileimportreimporttimeimportdatetimeclassPingView(View):"""心跳包"""
defpost(self,request):
uid= request.POST.get('uid', '')
pwd= request.POST.get('pwd', '')
u= UserProfile.objects.filter(username=uid).first()
u_endtime_stamp=int(time.mktime(u.end_time.timetuple()))
nowtime_stamp=int(time.time())if u_endtime_stamp >nowtime_stamp:
msg='0'
else:
msg='1'
return HttpResponse(msg)
3.在urls.py中配置路由:
#......
from yanzheng.views importRegisterView,LoginView,PingView
urlpatterns=[#......
path('ping',PingView.as_view()),
]
4.生产充值卡密功能:
1.我特意为充值卡密开发一个网页
1.在templates目录下新建一个html文件:index.html
2.到网上找一些素材模板,装饰网页,css文件放在static/css目录下,js文件放在static/js目录下,图片文件放在media/image目录下
3.为了引用到图片文件,在apps/yanzheng目录下的models.py中,为图片文件的路径建一个表:
classbg(models.Model):
image=models.ImageField(upload_to='image',verbose_name='背景图',default='image/bg.jpg')
然后打开Terminal执行经典的数据更新命令:
python manage.py makemigrations
python manage.py migrate
当然,2、3两个步骤,只是为了让生成卡密的网页显得更好看,而好看这件事,仁者见仁智者见智,读者需要自己去网上挑选自己喜欢的网页模板。
4.index.html文件代码:
{% load staticfiles %}
卡密工厂background-repeat:no-repeat;
background-size:100% 100%;
-moz-background-size:100% 100%;
}
{{ msg }}
生产张数:
时间面值:
小时
天
星期
月
三月
半年
年
functioninfo() {
document.getElementById('info').innerHTML='正在生产卡密,请稍等……'}