软件工程团队项目,第1周——框架搭建及上线


时间:2020.4.18-2020.4.25

1.用Django搭建一个简单的论坛

models

论坛板块Plate

class Plate(models.Model):
    '''论坛的板块'''
    text=models.CharField(max_length=200)
    date_added=models.DateTimeField(auto_now_add=True)
    owner=models.ForeignKey(User,on_delete=models.CASCADE)

    def __str__(self):
        '''返回模型的字符串表示'''
        return self.text

text储存板块名称,date_added储存编辑日期,owner板块对应的版主

文章Post

class Post(models.Model):
    '''用户发表的帖子'''
    plate=models.ForeignKey(Plate,on_delete=models.CASCADE)
    text=models.TextField()
    date_added=models.DateTimeField(auto_now_add=True)
    owner=models.ForeignKey(User,on_delete=models.CASCADE)
    
    class Meta:
        verbose_name_plural='posts'
    
    def __str__(self):
        '''返回模型的字符串表示'''
        return self.text[:50]+"..."

变量的内容差不太多,plate储存该帖子对应的板块

评论Comment

class Comment(models.Model):
    '''对于某条帖子的评论'''
    post=models.ForeignKey(Post,on_delete=models.CASCADE)
    text=models.TextField()
    owner=models.ForeignKey(User,on_delete=models.CASCADE)
    date_added=models.DateTimeField(auto_now_add=True)

    def __str__(self):
        '''返回模型的字符串表示'''
        return self.text

储存的内容与之前差不多,post变量储存了该条评论是对应的哪个文章

views

这里就不列出每一个视图函数的具体细节了,需要的话可以到GitHub上查看完整代码

def index(request):
    '''论坛的主页'''
def plates(request):
    '''显示论坛所有板块'''
def plate(request,plate_id):
    '''显示某板块内的所有po文'''
def new_plate(request):
    '''添加新板块'''
def new_post(request,plate_id):
    '''在特定的板块中添加新文章'''
def show_comments(request,post_id):
    '''评论页面,显示某文章的所有评论,添加评论,回复'''
def new_comment(request,post_id):
    '''添加评论'''
def response_comment(request,comment_id):
    '''回复评论'''
def show_dynamic(request):
    '''显示动态'''
def del_comment(request,comment_id):
    '''删除一条评论'''
def del_post(request,post_id):
    '''删除一条日志'''

效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.查询股票价格

扩展

所有数据获取,数据处理等功能我都放在了名为extends的外部模块中
在这里插入图片描述
get_price.py为视图函数提供调用接口,通过调用data模块中的stock_basic.py模块从API获得股票的价格数据,然后返回给视图函数将查询结果返回给用户。stock_basic.py由L同学完成设计和编写。

get_price.py

class GetPrice():
    def __init__(self):
        self.token='c89761557a8c339b857a2fedebea03685aee396dd2501d063d7271fd'
        ts.set_token(self.token)
        self.pro = ts.pro_api(self.token)

    def by_name(self,stock_name,date):
        stock=select_basic_name(stock_name,self.pro)
        return stock.get_price(date,date,self.pro)

定义了查询类GetPrice,首先初始化API的调用配置,然后获取以dataframe的形式获取股票价格数据,by_name()方法是按照股票名称查询的功能函数,把从API获得的数据以及股票名作为参数传入/data/stock_basic.py中的select_basic_name函数,返回一个stock对象,其中包含了价格信息。

查询价格的视图函数

@login_required
def get_stock_price(request):
    '''查询股票价格'''
    result=''
    if request.method!='POST':
        #未提交查询内容,创建一个空表单
        form=GetpriceForm()
    else:
        #POST提交的数据,对数据进行处理
        form=GetpriceForm(data=request.POST)
        if form.is_valid():
            name=form.cleaned_data['stock_name']
            date=form.cleaned_data['date'].strftime('%Y%m%d')
            refer=GetPrice()
            result=refer.by_name(name,date)
            if not result.values.tolist():
                result='没有找到当天关于“'+name+'”的价格信息'
            else:
                title='    '.join(result.columns.values.tolist())
                value='    '.join([str(i) for i in result.values.tolist()[0]])
                result=title+'\n'+value
    context={'form':form,'result':result}
    return render(request,'forum/get_stock_price.html',context)


views.py中的get_stock_price()视图函数面向用户实现一个简单的股票价格查询窗口,通过表单获取股票名称和查询日期字段,然后调用extends/get_price.py中的GetPrice类的by_name()方法查询某天的某只股票价格信息,将查询到的结果转化为字符串传给HTML模板。

效果

在这里插入图片描述

3.将项目部署到阿里云上

过程

参照这篇博客
Centos7部署Django项目

效果

在这里插入图片描述

服务器上
在这里插入图片描述

4.项目链接

GitHub链接
https://github.com/yangzi-fisher/stock_forum

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值