百度做网站,个人工作总结ppt模板免费,注册公司制作网站,珠海建设银行官方网站目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍#xff1a;CSDN认证博客专家#xff0c;CSDN平台Java领域优质创作者… 目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍CSDN认证博客专家CSDN平台Java领域优质创作者全网30w粉丝超300w访问量专注于大学生项目实战开发、讲解和答疑辅导对于专业性数据证明一切 主要项目javaweb、ssm、springboot、vue、小程序、python、安卓、uniapp等设计与开发,万套源码成品可供选择学习。 文末获取源码
DjangoVue家居全屋定制系统的设计与实现(源码数据库文档)
项目描述 西西家居全屋定制系统是一种创新性的家居装饰解决方案它以个性化设计、高效服务、优质材料和智能化生产为核心特点致力于为用户提供高品质、个性化的居住环境。随着人们对生活品质和个性化需求的不断提高西西家居全屋定制系统有望成为家居行业的新趋势。 课题主要采用python技术和MySQL数据库技术以及Django框架进行开发。系统主要包括首页、用户、设计师、家具分类、家具信息、家具定制、定制分配、家具数据、公告信息、系统管理、订单管理、我的信息等功能从而实现智能化的西西家居全屋定制管理方式提高西西家居全屋定制管理的效率。 2 项目截图 django西西家居全屋定制系统的设计与实现演示 3 核心代码
3.1 需要的环境
django2.0
django-threadlocals
pymysql
click
requests
xlrd1.2.0
django-cors-headers2.4.0
hdfs2.7.0
pycryptodome3.2 Django接口层 # coding:utf-8
__author__ ilafrom django.http import JsonResponsefrom .users_model import users
from util.codes import *
from util.auth import Auth
import util.message as mes
from dj2.settings import host,port,user,passwd,dbName,hasHadoopdef users_login(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code}req_dict request.session.get(req_dict)if req_dict.get(role)!None:del req_dict[role]datas users.getbyparams(users, users, req_dict)if not datas:msg[code] password_error_codemsg[msg] mes.password_error_codereturn JsonResponse(msg)req_dict[id] datas[0].get(id)return Auth.authenticate(Auth, users, req_dict)def users_register(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code}req_dict request.session.get(req_dict)error users.createbyreq(users, users, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def users_session(request):if request.method in [POST, GET]:msg {code: normal_code,msg:mes.normal_code, data: {}}req_dict {id: request.session.get(params).get(id)}msg[data] users.getbyparams(users, users, req_dict)[0]return JsonResponse(msg)def users_logout(request):if request.method in [POST, GET]:msg {msg: 退出成功,code: 0}return JsonResponse(msg)def users_page(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code,data: {currPage: 1, totalPage: 1, total: 1, pageSize: 10, list: []}}req_dict request.session.get(req_dict)tablename request.session.get(tablename)try:__hasMessage__ users.__hasMessage__except:__hasMessage__ Noneif __hasMessage__ and __hasMessage__ ! 否:if tablename ! users:req_dict[userid] request.session.get(params).get(id)if tablename users:msg[data][list], msg[data][currPage], msg[data][totalPage], msg[data][total], \msg[data][pageSize] users.page(users, users, req_dict)else:msg[data][list], msg[data][currPage], msg[data][totalPage], msg[data][total], \msg[data][pageSize] [],1,0,0,10return JsonResponse(msg)def users_info(request, id_):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}data users.getbyid(users, users, int(id_))if len(data) 0:msg[data] data[0]# 浏览点击次数try:__browseClick__ users.__browseClick__except:__browseClick__ Noneif __browseClick__ and clicknum in users.getallcolumn(users, users):click_dict {id: int(id_), clicknum: str(int(data[0].get(clicknum, 0)) 1)}ret users.updatebyparams(users, users, click_dict)if ret ! None:msg[code] crud_error_codemsg[msg] retreturn JsonResponse(msg)def users_save(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)req_dict[role] 管理员error users.createbyreq(users, users, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def users_update(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)if req_dict.get(mima) and req_dict.get(password):if mima not in users.getallcolumn(users,users):del req_dict[mima]if password not in users.getallcolumn(users,users):del req_dict[password]try:del req_dict[clicknum]except:passerror users.updatebyparams(users, users, req_dict)if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)def users_delete(request):if request.method in [POST, GET]:msg {code: normal_code, msg: mes.normal_code, data: {}}req_dict request.session.get(req_dict)error users.deletes(users,users,req_dict.get(ids))if error ! None:msg[code] crud_error_codemsg[msg] errorreturn JsonResponse(msg)
3.3 实体类
# coding:utf-8
__author__ ilafrom django.db import modelsfrom .model import BaseModelclass users(BaseModel):# idmodels.BigIntegerField(verbose_name自增id)username models.CharField(max_length100, verbose_nameu账号)password models.CharField(max_length100, verbose_nameu密码)role models.CharField(max_length100, verbose_nameu角色)addtime models.DateTimeField(auto_now_addFalse, verbose_nameu创建时间)image models.CharField(max_length100, verbose_nameu头像)__tablename__ usersclass Meta:db_table usersverbose_name verbose_name_plural u管理员表# def __str__(self):# return self.username
3.4 config.ini
[sql]
;support two sql,mysql and mssql,choice one
type mysql
host 127.0.0.1
port 3306
user root
passwd 123456
db djangoc2e8kave
charset utf8
hasHadoop否
[redis]
host 127.0.0.1
port 6379
passwd 123456
3.5 启动类
#!/usr/bin/env python
import os
import sysif __name__ __main__:os.environ.setdefault(DJANGO_SETTINGS_MODULE, dj2.settings)try:from django.core.management import execute_from_command_lineexcept ImportError as exc:raise ImportError(Couldnt import Django. Are you sure its installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?) from excexecute_from_command_line(sys.argv)
3.5 Vue
templatedivdiv classcontainer loginIn stylebackgroundImage: url(http://codegen.caihongy.cn/20201206/eaa69c2b4fa742f2b5acefd921a772fc.jpg)div :class2 1 ? left : 2 2 ? left center : left right stylebackgroundColor: rgba(255, 255, 255, 0.71)el-form classlogin-form label-positionleft :label-width1 3 ? 56px : 0pxdiv classtitle-containerh3 classtitle stylecolor: rgba(84, 88, 179, 1)在线文档管理系统登录/h3/divel-form-item :label1 3 ? 用户名 : :classstyle1span v-if1 ! 3 classsvg-container stylecolor:rgba(89, 97, 102, 1);line-height:44pxsvg-icon icon-classuser //spanel-input placeholder请输入用户名 nameusername typetext v-modelrulesForm.username //el-form-itemel-form-item :label1 3 ? 密码 : :classstyle1span v-if1 ! 3 classsvg-container stylecolor:rgba(89, 97, 102, 1);line-height:44pxsvg-icon icon-classpassword //spanel-input placeholder请输入密码 namepassword typepassword v-modelrulesForm.password //el-form-itemel-form-item v-if0 1 classcode :label1 3 ? 验证码 : :classstyle1span v-if1 ! 3 classsvg-container stylecolor:rgba(89, 97, 102, 1);line-height:44pxsvg-icon icon-classcode //spanel-input placeholder请输入验证码 namecode typetext v-modelrulesForm.code /div classgetCodeBt clickgetRandCode(4) styleheight:44px;line-height:44pxspan v-for(item, index) in codes :keyindex :style{color:item.color,transform:item.rotate,fontSize:item.size}{{ item.num }}/span/div/el-form-itemel-form-item label角色 proploginInRole classroleel-radiov-foritem in menusv-ifitem.hasBackLogin是v-bind:keyitem.roleNamev-modelrulesForm.role:labelitem.roleName{{item.roleName}}/el-radio/el-form-itemel-button typeprimary clicklogin() classloginInBt stylepadding:0;font-size:16px;border-radius:4px;height:44px;line-height:44px;width:100%;backgroundColor:rgba(84, 88, 179, 1); borderColor:rgba(84, 88, 179, 1); color:rgba(255, 255, 255, 1){{1 1 ? 登录 : login}}/el-buttonel-form-item classsetting!-- div stylecolor:rgba(255, 255, 255, 1) classreset修改密码/div --/el-form-item/el-form/div/div/div
/template
script
import menu from /utils/menu;
export default {data() {return {rulesForm: {username: ,password: ,role: ,code: ,},menus: [],tableName: ,codes: [{num: 1,color: #000,rotate: 10deg,size: 16px},{num: 2,color: #000,rotate: 10deg,size: 16px},{num: 3,color: #000,rotate: 10deg,size: 16px},{num: 4,color: #000,rotate: 10deg,size: 16px}],};},mounted() {let menus menu.list();this.menus menus;},created() {this.setInputColor()this.getRandCode()},methods: {setInputColor(){this.$nextTick((){document.querySelectorAll(.loginIn .el-input__inner).forEach(el{el.style.backgroundColor rgba(255, 255, 255, 1)el.style.color rgba(0, 0, 0, 1)el.style.height 44pxel.style.lineHeight 44pxel.style.borderRadius 2px})document.querySelectorAll(.loginIn .style3 .el-form-item__label).forEach(el{el.style.height 44pxel.style.lineHeight 44px})document.querySelectorAll(.loginIn .el-form-item__label).forEach(el{el.style.color rgba(89, 97, 102, 1)})setTimeout((){document.querySelectorAll(.loginIn .role .el-radio__label).forEach(el{el.style.color rgba(84, 88, 179, 1)})},350)})},register(tableName){this.$storage.set(loginTable, tableName);this.$router.push({path:/register})},// 登陆login() {let code for(let i in this.codes) {code this.codes[i].num}if (0 1 !this.rulesForm.code) {this.$message.error(请输入验证码);return;}if (0 1 this.rulesForm.code.toLowerCase() ! code.toLowerCase()) {this.$message.error(验证码输入有误);this.getRandCode()return;}if (!this.rulesForm.username) {this.$message.error(请输入用户名);return;}if (!this.rulesForm.password) {this.$message.error(请输入密码);return;}if (!this.rulesForm.role) {this.$message.error(请选择角色);return;}let menus this.menus;for (let i 0; i menus.length; i) {if (menus[i].roleName this.rulesForm.role) {this.tableName menus[i].tableName;}}this.$http({url: ${this.tableName}/login?username${this.rulesForm.username}password${this.rulesForm.password},method: post}).then(({ data }) {if (data data.code 0) {this.$storage.set(Token, data.token);this.$storage.set(role, this.rulesForm.role);this.$storage.set(sessionTable, this.tableName);this.$storage.set(adminName, this.rulesForm.username);this.$router.replace({ path: /index/ });} else {this.$message.error(data.msg);}});},getRandCode(len 4){this.randomString(len)},randomString(len 4) {let chars [a, b, c, d, e, f, g, h, i, j, k,l, m, n, o, p, q, r, s, t, u, v,w, x, y, z, A, B, C, D, E, F, G,H, I, J, K, L, M, N, O, P, Q, R,S, T, U, V, W, X, Y, Z, 0, 1, 2,3, 4, 5, 6, 7, 8, 9]let colors [0, 1, 2,3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f]let sizes [14, 15, 16, 17, 18]let output [];for (let i 0; i len; i) {// 随机验证码let key Math.floor(Math.random()*chars.length)this.codes[i].num chars[key]// 随机验证码颜色let code #for (let j 0; j 6; j) {let key Math.floor(Math.random()*colors.length)code colors[key]}this.codes[i].color code// 随机验证码方向let rotate Math.floor(Math.random()*60)let plus Math.floor(Math.random()*2)if(plus 1) rotate -rotatethis.codes[i].rotate rotate(rotatedeg)// 随机验证码字体大小let size Math.floor(Math.random()*sizes.length)this.codes[i].size sizes[size]px}},}
};
/script
style langscss scoped
.loginIn {min-height: 100vh;position: relative;background-repeat: no-repeat;background-position: center center;background-size: cover;.left {position: absolute;left: 0;top: 0;width: 360px;height: 100%;.login-form {background-color: transparent;width: 100%;right: inherit;padding: 0 12px;box-sizing: border-box;display: flex;justify-content: center;flex-direction: column;}.title-container {text-align: center;font-size: 24px;.title {margin: 20px 0;}}.el-form-item {position: relative;.svg-container {padding: 6px 5px 6px 15px;color: #889aa4;vertical-align: middle;display: inline-block;position: absolute;left: 0;top: 0;z-index: 1;padding: 0;line-height: 40px;width: 30px;text-align: center;}.el-input {display: inline-block;height: 40px;width: 100%; /deep/ input {background: transparent;border: 0px;-webkit-appearance: none;padding: 0 15px 0 30px;color: #fff;height: 40px;}}}}.center {position: absolute;left: 50%;top: 50%;width: 360px;transform: translate3d(-50%,-50%,0);height: 446px;border-radius: 8px;}.right {position: absolute;left: inherit;right: 0;top: 0;width: 360px;height: 100%;}.code {.el-form-item__content {position: relative;.getCodeBt {position: absolute;right: 0;top: 0;line-height: 40px;width: 100px;background-color: rgba(51,51,51,0.4);color: #fff;text-align: center;border-radius: 0 4px 4px 0;height: 40px;overflow: hidden;span {padding: 0 5px;display: inline-block;font-size: 16px;font-weight: 600;}}.el-input { /deep/ input {padding: 0 130px 0 30px;}}}}.setting { /deep/ .el-form-item__content {padding: 0 15px;box-sizing: border-box;line-height: 32px;height: 32px;font-size: 14px;color: #999;margin: 0 !important;.register {float: left;width: 50%;}.reset {float: right;width: 50%;text-align: right;}}}.style2 {padding-left: 30px;.svg-container {left: -30px !important;}.el-input { /deep/ input {padding: 0 15px !important;}}}.code.style2, .code.style3 {.el-input { /deep/ input {padding: 0 115px 0 15px;}}}.style3 { /deep/ .el-form-item__label {padding-right: 6px;}.el-input { /deep/ input {padding: 0 15px !important;}}}.role { /deep/ .el-form-item__label {width: 56px !important;} /deep/ .el-radio {margin-right: 12px;}}}
/style
4 数据库表设计
用户注册实体图如图所示
数据库表的设计如下表
5 文档参考 6 计算机毕设选题推荐
最新计算机软件毕业设计选题大全整理中…
7 源码获取
获取联系方式在文章末尾 如果想入行提升技术的可以看我专栏其他内容