基于Python实现爬虫+协同过滤算法的招聘信息推荐系统
作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师
主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享
收藏点赞不迷路 关注作者有好处
文末获得源码
项目编号:BS-Python-045
一,环境介绍
语言环境:Python3.8
数据库:Mysql: mysql5.7
WEB框架:Django
开发工具:IDEA或PyChram
二,项目简介
随着网络科技的不断发展以及人们经济水平的逐步提高,计算机如今已成为人们生活中不可缺少的一部分,为招聘信息方便管理,基于Python技术设计与实现了一款简洁、轻便的管理系统。本系统解决了招聘信息管理中的主要问题,包括个人中心、用户管理、招聘信息管理、留言板管理、系统管理等功能。
本系统采用了Python语言的Django框架,数据采用MySQL数据库进行存储。结合B/S结构进行开发设计,功能强大,界面化操作便于上手。本系统具有良好的易用性和安全性,系统功能齐全,可以满足招聘信息管理的相关工作。
本系统综合网络空间开发设计要求。目的是将传统管理方式转换为在网上管理,完成招聘信息管理的方便快捷、安全性高、交易规范做了保障,目标明确。招聘信息推荐系统可以将功能划分为管理员功能和用户功能。
(1)、管理员关键功能包含个人中心、用户管理、招聘信息管理、留言板管理、系统管理等进行管理。管理员用例如下:
图3-1 管理员用例图
(2)、用户登录进入系统可以实现对首页、招聘信息、新闻资讯、留言板、个人中心等进行管理。用户用例如下:
图3-2 用户用例图
系统采用了结构化开发的方法。这种开发方法的优点是控制性比较强,开发过程中采用了结构化和模块化的设计思想,自顶向下,从总体到部分,合理划分系统的结构和模块。结构化开发时使用模块式开发,各模块之间互不影响,方便系统的开发与管理。 系统总体功能如下图所示:
三,系统展示
3.1 系统前端
系统首页
用户注册:
招聘详情:
个人中心
3.2 系统后端
管理主界面:
用户管理:
四,核心代码展示
from django.contrib import admin
from django.apps import apps, AppConfig
# Register your models here.
from dj2.settings import dbName as schemaName
from main.users_model import users
from main.config_model import config
try:
from main.models import *
except:
pass
# change title
admin.site.site_title = schemaName # 设置页面标题
admin.site.site_header = schemaName # 设置网站页头
admin.site.index_title = schemaName # 设置首页标语
allModels = apps.get_app_config('main').get_models()
for ind, model in enumerate(allModels):
class modelsite(admin.ModelAdmin):
list_display = []
for col in model._meta.fields:
list_display.append(col.name)
search_fields = list_display
admin.site.register(model, modelsite)
#coding:utf-8
__author__ = "ila"
from django.db import models
from .model import BaseModel
from datetime import datetime
class yonghu(BaseModel):
__doc__ = u'''yonghu'''
__tablename__ = 'yonghu'
__loginUser__='yonghuming'
__authTables__={}
__authPeople__='是'#用户表,表属性loginUserColumn对应的值就是用户名字段,mima就是密码字段
__loginUserColumn__='yonghuming'#用户表,表属性loginUserColumn对应的值就是用户名字段,mima就是密码字段
__sfsh__='否'#表sfsh(是否审核,”是”或”否”)字段和sfhf(审核回复)字段,后台列表(page)的操作中要多一个”审核”按钮,点击”审核”弹出一个页面,包含”是否审核”和”审核回复”,点击确定调用update接口,修改sfsh和sfhf两个字段。
__authSeparate__='否'#后台列表权限
__thumbsUp__='否'#表属性thumbsUp[是/否],新增thumbsupnum赞和crazilynum踩字段
__intelRecom__='否'#智能推荐功能(表属性:[intelRecom(是/否)],新增clicktime[前端不显示该字段]字段(调用info/detail接口的时候更新),按clicktime排序查询)
__browseClick__='否'#表属性[browseClick:是/否],点击字段(clicknum),调用info/detail接口的时候后端自动+1)、投票功能(表属性[vote:是/否],投票字段(votenum),调用vote接口后端votenum+1
__foreEndListAuth__='否'#前台列表权限foreEndListAuth[是/否];当foreEndListAuth=是,刷的表新增用户字段userid,前台list列表接口仅能查看自己的记录和add接口后台赋值userid的值
__foreEndList__='否'#表属性[foreEndList]前台list:和后台默认的list列表页相似,只是摆在前台,否:指没有此页,是:表示有此页(不需要登陆即可查看),前要登:表示有此页且需要登陆后才能查看
__isAdmin__='否'#表属性isAdmin=”是”,刷出来的用户表也是管理员,即page和list可以查看所有人的考试记录(同时应用于其他表)
addtime = models.DateTimeField(auto_now_add=False, verbose_name=u'创建时间')
yonghuming=models.CharField ( max_length=255,null=False,unique=True, verbose_name='用户名' )
mima=models.CharField ( max_length=255,null=False, unique=False, verbose_name='密码' )
xingming=models.CharField ( max_length=255, null=True, unique=False, verbose_name='姓名' )
xingbie=models.CharField ( max_length=255, null=True, unique=False, verbose_name='性别' )
touxiang=models.TextField ( null=True, unique=False, verbose_name='头像' )
youxiang=models.CharField ( max_length=255, null=True, unique=False, verbose_name='邮箱' )
shouji=models.CharField ( max_length=255, null=True, unique=False, verbose_name='手机' )
'''
yonghuming=VARCHAR
mima=VARCHAR
xingming=VARCHAR
xingbie=VARCHAR
touxiang=Text
youxiang=VARCHAR
shouji=VARCHAR
'''
class Meta:
db_table = 'yonghu'
verbose_name = verbose_name_plural = '用户'
class zhaopinxinxi(BaseModel):
__doc__ = u'''zhaopinxinxi'''
__tablename__ = 'zhaopinxinxi'
__authTables__={}
__authPeople__='否'#用户表,表属性loginUserColumn对应的值就是用户名字段,mima就是密码字段
__sfsh__='否'#表sfsh(是否审核,”是”或”否”)字段和sfhf(审核回复)字段,后台列表(page)的操作中要多一个”审核”按钮,点击”审核”弹出一个页面,包含”是否审核”和”审核回复”,点击确定调用update接口,修改sfsh和sfhf两个字段。
__authSeparate__='否'#后台列表权限
__thumbsUp__='否'#表属性thumbsUp[是/否],新增thumbsupnum赞和crazilynum踩字段
__intelRecom__='是'#智能推荐功能(表属性:[intelRecom(是/否)],新增clicktime[前端不显示该字段]字段(调用info/detail接口的时候更新),按clicktime排序查询)
__browseClick__='是'#表属性[browseClick:是/否],点击字段(clicknum),调用info/detail接口的时候后端自动+1)、投票功能(表属性[vote:是/否],投票字段(votenum),调用vote接口后端votenum+1
__foreEndListAuth__='否'#前台列表权限foreEndListAuth[是/否];当foreEndListAuth=是,刷的表新增用户字段userid,前台list列表接口仅能查看自己的记录和add接口后台赋值userid的值
__foreEndList__='是'#表属性[foreEndList]前台list:和后台默认的list列表页相似,只是摆在前台,否:指没有此页,是:表示有此页(不需要登陆即可查看),前要登:表示有此页且需要登陆后才能查看
__isAdmin__='否'#表属性isAdmin=”是”,刷出来的用户表也是管理员,即page和list可以查看所有人的考试记录(同时应用于其他表)
addtime = models.DateTimeField(auto_now_add=False, verbose_name=u'创建时间')
xlyq=models.CharField ( max_length=255, null=True, unique=False, verbose_name='学历要求' )
gsxz=models.CharField ( max_length=255, null=True, unique=False, verbose_name='公司性质' )
gsmc=models.CharField ( max_length=255, null=True, unique=False, verbose_name='公司名称' )
gsgm=models.CharField ( max_length=255, null=True, unique=False, verbose_name='公司规模' )
fabushijian=models.CharField ( max_length=255, null=True, unique=False, verbose_name='发布时间' )
laiyuan=models.CharField ( max_length=255, null=True, unique=False, verbose_name='来源' )
biaoti=models.CharField ( max_length=255,null=False, unique=False, verbose_name='标题' )
gzdz=models.CharField ( max_length=255, null=True, unique=False, verbose_name='工作地址' )
xinzi=models.CharField ( max_length=255, null=True, unique=False, verbose_name='薪资' )
gzjy=models.CharField ( max_length=255, null=True, unique=False, verbose_name='工作经验' )
clicktime=models.DateTimeField ( null=True, unique=False, verbose_name='最近点击时间' )
clicknum=models.IntegerField ( null=True, unique=False,default='0', verbose_name='点击次数' )
'''
xlyq=VARCHAR
gsxz=VARCHAR
gsmc=VARCHAR
gsgm=VARCHAR
fabushijian=VARCHAR
laiyuan=VARCHAR
biaoti=VARCHAR
gzdz=VARCHAR
xinzi=VARCHAR
gzjy=VARCHAR
clicktime=DateTime
clicknum=Integer
'''
class Meta:
db_table = 'zhaopinxinxi'
verbose_name = verbose_name_plural = '招聘信息'
class news(BaseModel):
__doc__ = u'''news'''
__tablename__ = 'news'
__authTables__={}
addtime = models.DateTimeField(auto_now_add=False, verbose_name=u'创建时间')
title=models.CharField ( max_length=255,null=False, unique=False, verbose_name='标题' )
introduction=models.TextField ( null=True, unique=False, verbose_name='简介' )
picture=models.TextField ( null=False, unique=False, verbose_name='图片' )
content=models.TextField ( null=False, unique=False, verbose_name='内容' )
'''
title=VARCHAR
introduction=Text
picture=Text
content=Text
'''
class Meta:
db_table = 'news'
verbose_name = verbose_name_plural = '新闻资讯'
class systemintro(BaseModel):
__doc__ = u'''systemintro'''
__tablename__ = 'systemintro'
__authTables__={}
addtime = models.DateTimeField(auto_now_add=False, verbose_name=u'创建时间')
title=models.CharField ( max_length=255,null=False, unique=False, verbose_name='标题' )
subtitle=models.CharField ( max_length=255, null=True, unique=False, verbose_name='副标题' )
content=models.TextField ( null=False, unique=False, verbose_name='内容' )
picture1=models.TextField ( null=True, unique=False, verbose_name='图片1' )
picture2=models.TextField ( null=True, unique=False, verbose_name='图片2' )
picture3=models.TextField ( null=True, unique=False, verbose_name='图片3' )
'''
title=VARCHAR
subtitle=VARCHAR
content=Text
picture1=Text
picture2=Text
picture3=Text
'''
class Meta:
db_table = 'systemintro'
verbose_name = verbose_name_plural = '关于我们'
class messages(BaseModel):
__doc__ = u'''messages'''
__tablename__ = 'messages'
__authTables__={}
__hasMessage__='是'#表属性hasMessage为是,新增留言板表messages,字段content(内容),userid(用户id)
addtime = models.DateTimeField(auto_now_add=False, verbose_name=u'创建时间')
userid=models.BigIntegerField ( null=False, unique=False, verbose_name='留言人id' )
username=models.CharField ( max_length=255, null=True, unique=False, verbose_name='用户名' )
avatarurl=models.TextField ( null=True, unique=False, verbose_name='头像' )
content=models.TextField ( null=False, unique=False, verbose_name='留言内容' )
cpicture=models.TextField ( null=True, unique=False, verbose_name='留言图片' )
reply=models.TextField ( null=True, unique=False, verbose_name='回复内容' )
rpicture=models.TextField ( null=True, unique=False, verbose_name='回复图片' )
'''
userid=BigInteger
username=VARCHAR
avatarurl=Text
content=Text
cpicture=Text
reply=Text
rpicture=Text
'''
class Meta:
db_table = 'messages'
verbose_name = verbose_name_plural = '留言板'
class discusszhaopinxinxi(BaseModel):
__doc__ = u'''discusszhaopinxinxi'''
__tablename__ = 'discusszhaopinxinxi'
__authTables__={}
addtime = models.DateTimeField(auto_now_add=False, verbose_name=u'创建时间')
refid=models.BigIntegerField ( null=False, unique=False, verbose_name='关联表id' )
userid=models.BigIntegerField ( null=False, unique=False, verbose_name='用户id' )
avatarurl=models.TextField ( null=True, unique=False, verbose_name='头像' )
nickname=models.CharField ( max_length=255, null=True, unique=False, verbose_name='用户名' )
content=models.TextField ( null=False, unique=False, verbose_name='评论内容' )
reply=models.TextField ( null=True, unique=False, verbose_name='回复内容' )
'''
refid=BigInteger
userid=BigInteger
avatarurl=Text
nickname=VARCHAR
content=Text
reply=Text
'''
class Meta:
db_table = 'discusszhaopinxinxi'
verbose_name = verbose_name_plural = 'zhaopinxinxi评论表'
五,相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统
原文地址:https://blog.csdn.net/whirlwind526/article/details/140141356
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!