当前位置: 首页 > news >正文

微信做任务赚钱的网站/温州免费建站模板

微信做任务赚钱的网站,温州免费建站模板,做网站排名费用多少钱,网站设计中新闻版块怎么做亲手教你如何搭建一个基金模拟系统(基于Django框架)第一步:创建项目、APP以及静态文件存储文件夹django-admin startproject Chongyangdjango-admin startapp Stock # Chongyang文件夹里面操作在chongyang项目创建statics和templates两个文件夹第二步:配…

亲手教你如何搭建一个基金模拟系统(基于Django框架)

第一步:创建项目、APP以及静态文件存储文件夹

django-admin startproject Chongyang

django-admin startapp Stock # Chongyang文件夹里面操作

在chongyang项目创建statics和templates两个文件夹

第二步:配置Setting.py文件

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'Stock' # 添加自己的APP名

]

TEMPLATES = [

{

'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR, 'templates')], # 静态文件夹地址(必须配置)

'APP_DIRS': True,

'OPTIONS': {

'context_processors': [

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

],

},

},

]

# 数据库配置(使用默认sqlite)

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

'NAME': os.path.join(BASE_DIR, 'StockDB.db'),

}

}

LANGUAGE_CODE = 'zh-hans' # 汉语

TIME_ZONE = 'Asia/Shanghai' # 时区

STATIC_URL = '/static/' # 静态文件配置

STATICFILES_DIRS = [

os.path.join(BASE_DIR, 'statics'), # 具体的路径

os.path.join(BASE_DIR, 'templates'),

]

第三步:运行项目

python manage.py runserver 0.0.0.0:8000

到目前为止,你已经创建了一个拥有极其庞大功能的web网站,后续只需激活相应的服务即可

url.py # 路由配置文件

views.py # 功能实现文件

admin.py # 后台管理文件

model.py # 数据库创建文件

第四步:具体项目配置

在配置好前面设置后直接在相应的文件里复制如下代码运行项目即可

1、models.py

from django.db import models

import uuid

# 基金经理数据表

class Fund_Manger(models.Model):

name = models.CharField(max_length=20)

age = models.IntegerField()

entry_time = models.CharField(max_length=20)

def __str__(self):

return self.name

# 股票信息数据表

class Stock(models.Model):

stock_name = models.CharField(max_length=20)

code = models.CharField(max_length=10)

def __str__(self):

return self.code

# 交易系统表

class Trading(models.Model):

name = models.CharField(max_length=20)

time = models.DateTimeField()

code = models.CharField(max_length=10)

number = models.IntegerField()

price = models.CharField(max_length=10)

operate = models.CharField(max_length=10)

total_price = models.CharField(max_length=20)

# 清算数据表

class Fund_pool(models.Model):

time = models.DateTimeField()

total_pool = models.CharField(max_length=30)

oprate_people = models.CharField(max_length=10)

people_num = models.IntegerField()

def __str__(self):

return self.total_pool

2、url.py

from django.contrib import admin

from django.urls import path

from django.conf.urls import url

from Stock import views

urlpatterns = [

path('admin/', admin.site.urls),

url(r'^$', views.index),

url(r'^data_entry/$', views.data_entry, name='data_entry'),

url(r'^add_fund_manger/$', views.add_fund_manger),

url(r'^add_stock/$', views.add_stock),

url(r'^check$', views.check_index, name='check'),

url(r'^trading/$', views.check),

url(r'^trading_success/$', views.trading),

url(r'^fund_pool/$', views.Fund_pool_, name='fund_pool'),

url(r'^account/$', views.Account)

]

3、views.py

from django.shortcuts import render

from django.http import HttpResponse

from django.utils import timezone

from Stock.models import Fund_Manger, Stock, Trading, Fund_pool

import re

def index(request):

return render(request, 'index.html')

def data_entry(request):

return render(request, 'data_entry.html')

def check_index(request):

return render(request, 'check.html')

def add_fund_manger(request):

'''

添加时需判断原始表是否已经存在此用户信息

同时添加年龄限制(20~40)

'''

if request.method == "POST":

name = request.POST['name']

age = request.POST['age']

entry_time = request.POST['Time']

check_name = Fund_Manger.objects.filter(name=name)

if check_name:

return HttpResponse("

该用户已处在!

")

else:

if int(age) < 20 or int(age) >= 40:

return HttpResponse("

该用户年龄不符合要求!

")

else:

Mas = Fund_Manger(name=name, age=age, entry_time=entry_time)

Mas.save()

return HttpResponse("

用户注册成功!

")

def add_stock(request):

'''

添加基金池数据时需对股票代码做限定

仅限A股市场,同时做异常捕获处理

'''

if request.method == "POST":

stock_name = request.POST['stock_name']

post_code = request.POST['code']

# 过滤交易代码(以0、3、6开头长度为6的数字)

pattern = re.compile(r'000[\d+]{3}$|^002[\d+]{3}$|^300[\d+]{3}$|^600[\d+]{3}$|^601[\d+]{3}$|^603[\d+]{3}$')

code = pattern.findall(post_code)

# 异常处理

try:

num = code[0].__len__()

if num == 6:

Mas = Stock(stock_name=stock_name, code=code[0])

Mas.save()

return HttpResponse("

基金池数据添加成功!

")

else:

return HttpResponse("

错误代码!

")

except Exception as e:

return HttpResponse("

错误代码!

")

def check(request):

'''

信息合规查询(仅限A股数据)

需对基金经理、股票代码、交易数量同时做判断

'''

if request.method == "POST":

name = request.POST['name']

code = request.POST['code']

number = request.POST['number']

# 基金经理信息过滤

try:

check_name = Fund_Manger.objects.filter(name=name)

if check_name:

# 基金池数据过滤

try:

check_code = Stock.objects.filter(code=code)

# 交易数量过滤

if check_code:

if int(number) % 100 == 0:

return render(request, 'trade_index.html', {"name": name, "code": code, "number": number})

else:

return HttpResponse('

交易数量填写错误!

')

else:

return HttpResponse('

基金池无该股票信息!

')

except Exception as e:

print('异常信息为:%s' % str(e))

pass

else:

return HttpResponse('

没有该基金经理!

')

except Exception as e:

print('异常信息为:%s' % str(e))

pass

def trading(request):

'''

按照操作进行划分(买入卖出)

若买入只需判断交易金额与剩余现金资产对比即可

若卖出还需对其持股数量加以判断

'''

if request.method == "POST":

name = request.POST['name']

code = request.POST['code']

number = request.POST['number']

price = request.POST['price']

operate = request.POST['operate']

# 获取剩余可用资金

try:

total_price = float(Trading.objects.all().order_by('-time')[0].total_price)

except Exception as e:

total_price = 1000000

if operate == '卖出':

# 获取此股票持仓数量

stock_nums = Trading.objects.filter(code=code)

stock_num = sum([i.number for i in stock_nums])

number = -int(number)

if abs(number) <= stock_num:

# 计算交易所需金额

trade_price = float(price) * int(number)

balance = total_price - trade_price

Time_ = timezone.localtime(timezone.now()).strftime("%Y-%m-%d %H:%M:%S")

Mas = Trading(name=name, time=Time_, code=code, number=number, price=price, operate=operate,

total_price=balance)

Mas.save()

return HttpResponse("

交易完成!

")

else:

return HttpResponse("

持仓数小于卖出数,无法交易!

")

elif operate == '买入':

trade_price = float(price) * int(number)

balance = total_price - trade_price

Time_ = timezone.localtime(timezone.now()).strftime("%Y-%m-%d %H:%M:%S")

if trade_price <= total_price:

Mas = Trading(name=name, time=Time_, code=code, number=number, price=price, operate=operate, total_price=balance)

Mas.save()

print(total_price)

return HttpResponse("

交易完成!

")

else:

print(total_price)

return HttpResponse("

资金总额不足!

")

else:

return HttpResponse("

无效指令!

")

def Fund_pool_(request):

return render(request, 'fund_pool.html')

def Account(request):

'''

清算只需查询操作人是否为基金经理即可

'''

if request.method == "POST":

name = request.POST['name']

# 基金经理信息

check_name = Fund_Manger.objects.filter(name=name)

# 基金操作人数统计

oprate_people = Trading.objects.all()

if check_name:

total_price = float(Trading.objects.all().order_by('-time')[0].total_price)

total_pool = '¥ ' + str(total_price)

oprate_people_num = set([stock_name.name for stock_name in oprate_people]).__len__()

Time_ = timezone.localtime(timezone.now()).strftime("%Y-%m-%d %H:%M:%S")

Mas = Fund_pool(time=Time_, total_pool=total_pool, oprate_people=name, people_num=oprate_people_num)

Mas.save()

return HttpResponse("

数据清算成功!

")

else:

return HttpResponse('

非法操作!

')

4、admin.py

from django.contrib import admin

from Stock.models import Fund_Manger, Stock, Trading, Fund_pool

# Register your models here.

class Fund_MangerAdmin(admin.ModelAdmin):

list_display = ('name', 'age', 'entry_time')

class StockAdmin(admin.ModelAdmin):

list_display = ('stock_name', 'code')

class TradingAdmin(admin.ModelAdmin):

list_display = ('name', 'time', 'code', 'number', 'price', 'operate', 'total_price')

class Fund_PoolAdmin(admin.ModelAdmin):

list_display = ('time', 'total_pool', 'oprate_people', 'people_num')

admin.site.register(Fund_Manger, Fund_MangerAdmin)

admin.site.register(Stock, StockAdmin)

admin.site.register(Trading, TradingAdmin)

admin.site.register(Fund_pool, Fund_PoolAdmin)

第五步:在templates文件夹下面创建业务页面

1、index.html

{# #}

首页

a{ font-size:25px; color: white}

li{ color: white; font-size: 30px}

基金模拟系统:

数据录入系统合规管理系统尾盘清算系统

2、check.html

合规查询系统

合规查询系统:

{% csrf_token %}

姓   名:

代   码:

数   量:

3、data_entry.html

数据录入系统

重阳投资

基金交易职员信息录入系统:

{% csrf_token %}

姓      名:

年      龄:

入职时间:

基金池信息录入系统:

{% csrf_token %}

股票简称:

代      码:

4、trade_index.html

交易系统

重阳投资

交易系统:

{% csrf_token %}

姓   名:

代   码:

数   量:

价   格:

操   作:

5、fund_pool.html

基金清算系统

重阳投资

基金清算系统:

{% csrf_token %}

姓  名:

第六步:创建表结构,创建超级管理员,运行项目即可

python manage.py makemigrations

python manage.py migrate

python manage.py createsuperuser

python manage.py runserver 0.0.0.0:8000

以下内容只是自己学习Django的一点总结分享,有不足的地方欢迎大家指导学习,一起进步。

这篇使用Django搭建一个基金模拟交易系统教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

http://www.jmfq.cn/news/5223799.html

相关文章:

  • 做地暖工程的网站/免费的html网站
  • 做直播网站找哪家网站好/怎样创建一个自己的网站
  • 计算机是学什么内容的/山西网络营销seo
  • 抖音橙子建站/广州seo推广运营专员
  • 福建省建设行业信息公开平台/长沙官网seo技术
  • 怎么建设素材网站/关键词推广操作
  • 山东seo网站/青岛seo推广专员
  • 织梦如何做网站/安卓手机优化软件排名
  • html网页制作兼职平台/专业seo网络推广
  • 网站的建设和维护/一份完整的活动策划方案
  • 仿券妈妈券老大网站开发/东莞百度快速排名
  • int域名网站有哪些/谷歌官方网站注册
  • a站下载安装/免费建立个人网站申请
  • wordpress网站 frp穿透/seo网上培训
  • 网站咨询聊天怎么做/产品推广方案模板
  • 北京做网站定制价格/媒体资源网官网
  • 济南中建设计院 官方网站/网站推广的优化
  • 龙岩市新罗区疫情/徐州网页关键词优化
  • 做微信的网站有哪些/google seo教程
  • 做java面试题的网站/sem分析是什么
  • 文化广电旅游局网站建设方案/360建网站
  • 呼叫中心网站建设/免费软文网站
  • 成全视频免费观看在线看 综合 笔记 视频/四川旅游seo整站优化
  • 网站建设疑问/建站教程
  • 女生做网站编辑/广州网站设计
  • 视频网站做视频节目赚钱吗/快速网站轻松排名
  • 网站内容如何编辑软件/网站自动收录
  • 网站 配色方案/找网站设计公司
  • cpa建站教程/推广哪个网站好
  • 长春网站建设/手机访问另一部手机访问文件