一、具体要求

  1. 建立数据表FinancingProduct,创建主键,添加测试数据(至少4条)
  2. 使用Django命令创建web项目FinancingProductSys,生成相应的项目文件目录

3.在models.py文件上面创建实体类FinancingProduct

a.参考FinancingProduct表编写属性

b.编写各属性的__str__/__unicode__方法

4.在views.py文件上面创建各种方法(这个第678三个步骤的概括):

a.编写查询方法,查询理财信息

b.编写查询方法,根据产品代码查询理财信息记录数,以判断产品代码是否重复

c.编写增加方法,实现添加理财功能

5.在urls.py文件上:

a.添加查询方法路由处理路径,调用views.py文件上面的相关处理函数类,查询理财信息

b.添加查询方法路由处理路径,调用views.py文件上面的相关处理函数类,判断产品代码是否重复

c.添加增加方法路由处理路径,调用views.py文件上面的相关处理函数类,实现添加理财功能

6.在views.py上创建查询理财信息的处理函数

a.获取查询条件信息(查询全部理财信息的情况不用获取)

b.调用views上的相关类的方法查询理财信息,正确查询结果集进行分页的跳转

7.在views.py上创建验证产品代码是否重复的ajax异步调用处理函数

a.获取理财信息的产品代码

b.调用views上的相关类的方法查询该产品代码是否已经存在,正确返回json格式结果集

8.在views.py上创建添加理财的调用处理函数

a.获取添加理财的所有信息

b.调用views上的相关类添加理财信息,根据添加结果给出相应的提示并跳转至相关的页面

9.创建理财信息查询html页面

a.按照图所示进行页面设计,并使用css进行美化

b将查询条件提交到根据条件查询理财信息的异步调用处理函数

c.单击"新增理财信息"后打开新增理财页面,如图

10.创建新增理财页面

a.按照图进行设计

b.使用ajax异步校验验证产品代码是否与数据库中已经存在的理财信息的产品代码重复

c.保存数据之前要使用jquery对输入项进行非空验证,日期格式和风险评级的验证,如图

二  制作思路

  1. 先创建django项目文件
  2. 在sql数据库中创建相应的数据库
  3. 配置setting.py
  4. 在models.py写入模块,后执行shell语句在数据库中创建相应的表,并添加至少4条数据
  5. templates中创建首页面和新增页面的html
  6. 在urls.py中写入跳转路径和调用views.py中的方法
  7. 在views.py中写入要求的方法
  8. 在html中写入ajax代码

三  代码编写

项目目录

models.py

from django.db import models# Create your models here.
class FinancingProduct(models.Model):risk=models.IntegerField(null=False)income=models.CharField(null=False,max_length=50)saleStarting=models.DateTimeField(null=False)saleEnd=models.DateTimeField(null=False)end=models.DateTimeField(null=False)

views.py

from django.shortcuts import render,HttpResponse,redirect,reverse
from .models import*
# Create your views here.
def index(request):requestSet=Nonefxpj=request.GET.get('fxpj')daima=request.GET.get('daima')if fxpj is None and daima is None:requestSet=FinancingProduct.objects.all()elif fxpj is not None and fxpj is not "0":requestSet = FinancingProduct.objects.filter(risk=fxpj)elif daima is not None:requestSet = FinancingProduct.objects.filter(id=daima)#查询所有数据# requestSet=FinancingProduct.objects.all()return render(request,'index.html',{'rs':requestSet})def save(request):if request.method=="GET":return render(request,'save.html')else:#数据获取daima=request.POST.get('daima')risk=request.POST.get('risk')income=request.POST.get('income')saleStarting=request.POST.get('saleStarting')saleEnd=request.POST.get('saleEnd')end=request.POST.get('end')#数据保存newfp=FinancingProduct()newfp.id=daimanewfp.risk=risknewfp.income=incomenewfp.saleStarting=saleStartingnewfp.saleEnd=saleEndnewfp.end=endtry:newfp.save()return HttpResponse('1')#return redirect(reverse('pf:index'))except:return HttpResponse('0')def checkid(request):daima=request.GET.get('daima')rset=FinancingProduct.objects.filter(id=daima)if len(rset)==0:return HttpResponse('可以使用')else:return HttpResponse('不可以使用')

/pangzi/urls.py

#usr/bin/python
#-*-coding:utf-8-*-from django.urls import path,include
from .views import *app_name='pf'
urlpatterns = [path('index',index,name="index"),path('save',save),path('checkid',checkid),
]

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="/static/js/jquery-3.3.1.min.js"></script><script type="text/javascript">$(function () {$("#chaxun").click(function(){var val=$("[name='cpcode']").val();var fxpj=$("#fxpj").val();//判断代码输入框 和风险评级是否选择if (val==""&fxpj=="0"){alert("代码 评级必须选择一个")}else {//数据传到后台location.href="/pangzi/index?fxpj="+fxpj+"&daima="+val;}});})</script>
</head>
<body>
<p><strong>产品代码</strong><input type="text" name="cpcode"><strong>风险评级</strong><select id="fxpj"><option value="0">请选择</option><option value="1">R1</option><option value="2">R2</option><option value="3">R3</option></select><button value="查询" id="chaxun" >查询</button><a href="/pangzi/save" >新增理财信息</a>
</p>
<table><tr><td>产品代码&nbsp;&nbsp;</td><td>风险评级&nbsp;&nbsp;</td><td>预期收益&nbsp;&nbsp;</td><td>发售起始日&nbsp;&nbsp;</td><td>发售截止日&nbsp;&nbsp;</td><td>产品到期日&nbsp;&nbsp;</td></tr>{% for foo in rs %}<tr><td>{{ foo.id }}</td><td>{% if foo.risk is 1 %}R1{% elif foo.risk is 2%}R2{% else %}R3{% endif %}</td><td>{{ foo.income }}</td><td>{{ foo.saleStarting | date:'Y-m-d'}}</td><td>{{ foo.saleEnd | date:'Y-m-d' }}</td><td>{{ foo.end | date:'Y-m-d' }}</td></tr>{% endfor %}</table>
</body>
</html>

save.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">tr td:nth-of-type(3){color:red;}</style><script src="/static/js/jquery-3.3.1.min.js"></script><script type="text/javascript">$(function(){$('[name="daima"]').blur(function(){var daima=$('[name="daima"]').val();//异步请求判断$.get('/pangzi/checkid','daima='+daima,function(data){$("#mess").html(data);});});//表单验证$("form").submit(function(){var daima=$("[name='daima']").val();date_ymd= /^(\d{4})-(0\d{1}|1[0-2])-(0\d{1}|[12]\d{1}|3[01])$/;if (daima==""){$("#mess").html("产品代码不能为空")}else if ($("[name='risk']").val()=="0"){$("#riskmess").html("请选择风险评级")}else if(!date_ymd.test($("[name='saleStarting']").val())){$("[name='saleStarting']").parent().next().html("时间格式不正确");}else if(!date_ymd.test($("[name='saleEnd']").val())){$("[name='saleStarting']").parent().next().html("时间格式不正确");}else if(!date_ymd.test($("[name='end']").val())){$("[name='saleStarting']").parent().next().html("时间格式不正确");}else {//表单序列化  提交ajax后台var ser=$("form").serialize();$.post('/pangzi/save',ser,function (data) {if(data=="1"){alert("新增成功");location.href="index";}else{alert("新增失败");}})}return false;})})</script></head>
<body><h1>新增理财页面</h1>
<form action="/pangzi/save" method="post">{% csrf_token %}
<table><tr><td>产品代码</td><td><input type="text" name="daima"></td><td id="mess"></td></tr><tr><td>风险评级</td><td><select name="risk"><option value="0">请选择</option><option value="1">R1</option><option value="2">R2</option><option value="3">R3</option></select></td><td id="riskmess"></td></tr><tr><td>预期收益</td><td><input type="text" name="income"></td><td></td></tr><tr><td>发售起始日</td><td><input type="text" name="saleStarting"></td><td>yyyy-MM-dd格式</td></tr><tr><td>发售截止日</td><td><input type="text" name="saleEnd"></td><td>yyyy-MM-dd格式</td></tr><tr><td>产品到期日</td><td><input type="text" name="end"></td><td>yyyy-MM-dd格式</td></tr><tr><td><input type="submit" value="提交"></td><td><input type="button" value="返回"></td></tr>
</table>
</form></body>
</html>

/xiaoxingyun/urls.py

from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('pangzi/',include('pangzi.urls',namespace='pf'))
]

Django小项目--理财产品信息管理系统相关推荐

  1. C小项目 —— 学生信息管理系统

    C小项目 -- 学生信息管理系统 实现功能: 1. 录入学生信息 2. 显示所有学生信息 3. 按学号查询学生信息 4. 按姓名查询学生信息(支持模糊查询) 5. 按年龄查询学生信息 6. 修改学生信 ...

  2. SSM入门小项目----学生信息管理系统

    SSM入门小项目----学生信息管理系统 学习了SSM后,自己想动手写个小项目,巩固一下.选择了比较简单的学生信息管理系统,项目比较简单,包括的功能有:登录.学生信息的增删改查.分页(前端实现). 本 ...

  3. Python小项目——学生信息管理系统(详细讲解)

    目录 一.需求分析 1.学生管理系统应具备的功能 二.系统设计 1.系统功能结构 2.系统业务流程 三.系统开发必备工具 1.系统开发环境 2.项目目录结构 四.主函数设计 1.系统主界面运行效果图 ...

  4. 投资理财web后端系统_JSP+Servlet 实现:理财产品信息管理系统

    一.接业务,作分析 1.大致业务要求 1.1 使用 JSP+Servlet 实现理财产品信息管理系统,MySQL5.5 作为后台数据库,实现查看理财 和增加理财功能 1.2 查询页面效果图 1.3 添 ...

  5. 【python毕业设计】Django框架实现学生信息管理系统

    Django框架实现学生信息管理系统 演示视频:Django学生信息管理系统_腾讯视频 演示界面内容如下 总体概括 注册流程 首先进行输入用户名(邮箱).密码以及验证码,输入完之后点击注册按钮.如果输 ...

  6. 信息管理系统界面html_西宁市小升初信息管理系统http://221.207.8.71/

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到最新文章了.每天都有分享.完全是免费订阅,请放心关注.注:本文转载自网络,不代表本平台立场,仅供读者参 ...

  7. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  8. springboot毕设项目流动人口信息管理系统9i8kh(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目流动人口信息管理系统9i8kh(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...

  9. Java毕设项目诊所信息管理系统(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目诊所信息管理系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Web ...

最新文章

  1. python学习手册中文版免费下载-Python学习手册(第3版)
  2. 不用光盘可破解电脑系统密码
  3. smooth_L1_loss_layer.cpp:28] Check failed: bottom[0]-channels() == bottom[1]-channels() (12 vs. 84
  4. [机器学习] 分类 --- Naive Bayes(朴素贝叶斯)
  5. win7个人计算机的ip地址,win7计算机ip地址查询_win7本机ip地址查询
  6. predict函数 R_RROC三剑客(一)使用R语言手撕ROC曲线
  7. 关于 Linux上面 安装nodejs ccap模块 实现图形验证码的一些事情
  8. 用更少的钱看更清晰的视频——详谈阿里云窄带高清
  9. 电脑桌面便签小工具下载,好用的桌面便签软件推荐
  10. 在Adobe Premiere Pro for Mac上使用合并剪辑同步音频和视频
  11. Docker容器dockerfile构建镜像
  12. 创建企业邮箱后如何登录邮箱?企业邮箱登陆入口在哪里?
  13. 浏览器打开html文件特别慢,打开网页慢是什么原因,教您打开网页慢怎么解决
  14. google android win10 ios,Flutter入门安装 ,win10 Android studio 教程
  15. 用java编写图形用户界面_Java编写图形用户界面程序
  16. Python使用逻辑回归提示FutureWarning: Default solver will be changed to ‘lbfgs‘ in 0.22. Specify a solver to
  17. 【STM32】5分钟了解STM32的串口通信
  18. SMAX自动化服务台:有了我,技术人员再也不用手忙脚乱啦!
  19. shell之系统命令基础
  20. 捷信总经理Ondrej:愿为中欧企业间的长远发展与互惠共赢而努力

热门文章

  1. 米家扫拖一体机器人重置键_米家扫拖一体机器人的使用感受和小建议
  2. 车载开发之CarLife CarPlay HiCar
  3. 1205学习内容概要
  4. 利用rfcomm实现树莓派与手机通信_树莓派资源整理汇总(2020年2月18日更新)
  5. MySQL 中间件 Mycat
  6. 【RT-Thread】高精度RTC rx8900 驱动软件包
  7. 智能语音标注工具小记
  8. 第一章:操作系统概论
  9. 电阻系列知识(5)-电阻的阻值
  10. 杰理之带T卡(装有升级文件)上电死机问题以及T卡【篇】