from django.db import models
from dataclasses import dataclass
from django.contrib.auth.models import User
from django.contrib.auth.models import AbstractUser
# 引入内置信号
from django.db.models.signals import post_save
# 引入信号接收器的装饰器
from django.dispatch import receiver
# Create your models here.
class Application(models.Model):
# loan表主键,在这里做外键,该表与信贷表为一对一关系
loan_id = models.CharField(max_length=20)
# 申请人id, user表外键
applicant_id = models.CharField(max_length=20)
# 特征字段:
loan_amnt = models.CharField(max_length=20)
term = models.CharField(max_length=20)
int_rate = models.CharField(max_length=20)
sub_grade = models.CharField(max_length=20)
emp_length = models.CharField(max_length=20)
home_ownership = models.CharField(max_length=20)
annual_inc = models.CharField(max_length=20)
verification_status = models.CharField(max_length=20)
purpose = models.CharField(max_length=20)
dti = models.CharField(max_length=20)
delinq_2yrs = models.CharField(max_length=20)
inq_last_6mths = models.CharField(max_length=20)
open_acc = models.CharField(max_length=20)
pub_rec = models.CharField(max_length=20)
revol_bal = models.CharField(max_length=20)
revol_util = models.CharField(max_length=20)
total_acc = models.CharField(max_length=20)
initial_list_status = models.CharField(max_length=20)
collections_12_mths_ex_med = models.CharField(max_length=20)
acc_now_delinq = models.CharField(max_length=20)
tot_coll_amt = models.CharField(max_length=20)
tot_cur_bal = models.CharField(max_length=20)
total_rev_hi_lim = models.CharField(max_length=20)
class Approval(models.Model):
class IsPass(models.IntegerChoices):
Under_review = 0
Pass_review = 1
Failed_review = 2
# loan表主键,在这里做外键,该表与信贷表为一对一关系
loan_id = models.CharField(max_length=20)
# 会员号为profile表uk键,profile表与该表为1对n关系
member_id = models.CharField(max_length=20)
# user表主键,user表与该表为1对n关系(审批人)
approver_id = models.CharField(max_length=20)
# 审批进度
approval_progress = models.IntegerField(default=0)
# 审批状态
is_pass_review = models.IntegerField(choices=IsPass.choices, default=0)
create_time = models.DateField(auto_now=False, auto_now_add=True) # 创建时间
update_time = models.DateField(auto_now=True, auto_now_add=False) # 最近一次修改时间
def get_relevant_loan(self):
# 获得member_id对应的profile
profile = Profile.objects.get(member_id=self.member_id)
# 根据profile获取到的user_id,得到user(从而获得用户名)
user = User.objects.get(id=profile.user_id)
username = user.username
# 根据loan_id获取loan数据,从而得到loan_amnt和purpose字段
loan_data = StaffLoan.objects.get(id=self.loan_id)
loan_amnt = loan_data.loan_amnt
purpose = loan_data.purpose
rst_dit = {'username': username, 'loan_amnt': loan_amnt, 'purpose': purpose, 'progress': self.approval_progress,
'create_time': str(self.create_time), 'update_time': str(self.update_time), 'approver_id': self.approver_id,
'is_pass': self.is_pass_review}
return rst_dit
# 用户拓展信息
class Profile(models.Model):
# 与 User 模型构成一对一的关系
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
# 会员号字段
member_id = models.CharField(max_length=20, blank=False, null=True)
# 头像
avatar = models.ImageField(upload_to='avatar/%Y%m%d', blank=True)
# 是否是第一次登录
is_first_login = models.BooleanField(null=True)
def __str__(self):
return f'user: "{self.user.username}", member_id: "{self.member_id}", is_first_login: "{self.is_first_login}"'
# 信号接收函数, 每当新建 User 实例时自动调用
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance, is_first_login=1)
# 信号接收函数,每当更新User实例时自动调用
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
class Staff(models.Model):
def __str__(self):
return "Staff:[id={}, sno={}, sname={}]".format(
self.id, self.sno, self.sname
)
class Sex(models.IntegerChoices): # 采用 Django 提供了的 IntegerChoices 类,完成性别字段的枚举
WOMAN = 0
MAN = 1
id = models.AutoField(primary_key=True) # 用户id。 (AutoField:自增)
sno = models.CharField(max_length=32, unique=True) # 员工号(系统账号) (unique=True : 字段唯一)
password = models.CharField(max_length=32) # 密码
sname = models.CharField(max_length=32) # 员工姓名
email = models.EmailField(null=True, max_length=32) # 邮箱 (blank=True 允许空值)
sex = models.IntegerField(choices=Sex.choices, default=1) # 性别 (default=1 : 默认为男性)
"""
目前,将 auto_now 或 auto_now_add 设置为 True,将导致该字段设置为 editable=False 和 blank=True。
auto_now: 每次保存对象时,自动将该字段设置为现在。 auto_now_add: 当第一次创建对象时,自动将该字段设置为现在。
"""
create_time = models.DateField(auto_now=False, auto_now_add=True) # 创建时间
update_time = models.DateField(auto_now=True, auto_now_add=False) # 最近一次修改时间
class StaffClean(models.Model):
loan_status = models.IntegerField(blank=True, null=True)
member_id = models.CharField(max_length=20, blank=True, null=True)
term_36_months = models.IntegerField(db_column='term_ 36 months', blank=True, null=True) # Field renamed to remove unsuitable characters.
term_60_months = models.IntegerField(db_column='term_ 60 months', blank=True, null=True) # Field renamed to remove unsuitable characters.
home_ownership_any = models.IntegerField(db_column='home_ownership_ANY', blank=True, null=True) # Field name made lowercase.
home_ownership_mortgage = models.IntegerField(db_column='home_ownership_MORTGAGE', blank=True, null=True) # Field name made lowercase.
home_ownership_none = models.IntegerField(db_column='home_ownership_NONE', blank=True, null=True) # Field name made lowercase.
home_ownership_other = models.IntegerField(db_column='home_ownership_OTHER', blank=True, null=True) # Field name made lowercase.
home_ownership_own = models.IntegerField(db_column='home_ownership_OWN', blank=True, null=True) # Field name made lowercase.
home_ownership_rent = models.IntegerField(db_column='home_ownership_RENT', blank=True, null=True) # Field name made lowercase.
verification_status_not_verified = models.IntegerField(db_column='verification_status_Not Verified', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
verification_status_source_verified = models.IntegerField(db_column='verification_status_Source Verified', blank=True, null=True) # Field name made lowercase. Field renamed to remove unsuitable characters.
verification_status_verified = models.IntegerField(db_column='verification_status_Verified', blank=True, null=True) # Field name made lowercase.
purpose_car = models.IntegerField(blank=True, null=True)
purpose_credit_card = models.IntegerField(blank=True, null=True)
purpose_debt_consolidation = models.IntegerField(blank=True, null=True)
purpose_educational = models.IntegerField(blank=True, null=True)
purpose_home_improvement = models.IntegerField(blank=True, null=True)
purpose_house = models.IntegerField(blank=True, null=True)
purpose_ma
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于Python+Django+随机森林算法的银行信贷违约分析系统源码+全部资料齐全.zip基于Python+Django+随机森林算法的银行信贷违约分析系统源码+全部资料齐全.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Python+Django+随机森林算法的银行信贷违约分析系统源码+全部资料齐全.zip (80个子文件)
Bank-credit-default-risk-analysis-system-main
csv_helper
csv_helper.py 923B
staff
__init__.py 0B
tests.py 60B
admin.py 709B
migrations
__init__.py 0B
0007_auto_20210408_0850.py 378B
0003_auto_20210112_1622.py 383B
0006_loandata_profile_staffclean.py 18KB
0001_initial.py 884B
0008_profile_is_first_login.py 390B
0009_auto_20210413_2116.py 11KB
0005_auto_20210112_1810.py 394B
0010_auto_20210414_1112.py 7KB
__pycache__
0009_auto_20210413_2116.cpython-37.pyc 6KB
0003_auto_20210112_1622.cpython-37.pyc 580B
0007_auto_20210408_0850.cpython-37.pyc 526B
0005_auto_20210112_1810.cpython-37.pyc 589B
0001_initial.cpython-37.pyc 911B
__init__.cpython-37.pyc 156B
0004_auto_20210112_1623.cpython-37.pyc 590B
0006_loandata_profile_staffclean.cpython-37.pyc 8KB
0008_profile_is_first_login.cpython-37.pyc 587B
0010_auto_20210414_1112.cpython-37.pyc 3KB
0002_auto_20210112_1620.cpython-37.pyc 579B
0004_auto_20210112_1623.py 395B
0002_auto_20210112_1620.py 384B
apps.py 85B
models.py 27KB
urls.py 846B
__pycache__
views.cpython-37.pyc 7KB
admin.cpython-37.pyc 850B
forms.cpython-37.pyc 2KB
models.cpython-37.pyc 12KB
__init__.cpython-37.pyc 145B
urls.cpython-37.pyc 882B
predict_model
load_text.py 662B
data-cleaning.py 891B
model_test.py 458B
views.py 11KB
forms.py 1KB
templates
base_no_sid.html 905B
Staff
register.html 5KB
landing.html 31KB
tour.html 9KB
step_info.html 25KB
dashboard.html 18KB
check_result.html 3KB
dashboard2.html 6KB
index.html 329B
application_info.html 8KB
basic_info.html 9KB
personal_info.html 7KB
login_a.html 5KB
homepage.html 8KB
header.html 497B
js_importer.html 899B
base.html 976B
sidebar.html 3KB
footer.html 270B
navbar.html 6KB
.idea
other.xml 233B
vcs.xml 180B
misc.xml 185B
inspectionProfiles
profiles_settings.xml 174B
modules.xml 262B
.gitignore 240B
BCSys.iml 1KB
manage.py 661B
BCSys
__init__.py 44B
wsgi.py 387B
urls.py 1KB
settings.py 4KB
__pycache__
settings.cpython-37.pyc 3KB
__init__.cpython-37.pyc 194B
wsgi.cpython-37.pyc 544B
urls.cpython-37.pyc 1KB
asgi.py 387B
.gitignore 2KB
__pycache__
manage.cpython-37.pyc 813B
171265889347208773632.zip 416B
共 80 条
- 1
资源评论
不走小道
- 粉丝: 3210
- 资源: 5120
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- TG-2024-05-23-204718255.mp4
- 候志强@181 5428 8938_20240420112107.amr
- spispispispispi
- 实验二:IP协议分析.zip
- 驱动代码驱动代码驱动代码驱动代码
- SVID_20240523_141155_1.mp4
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功