Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3638679
  • 博文数量: 365
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2522
  • 用 户 组: 普通用户
  • 注册时间: 2019-10-28 13:40
文章分类

全部博文(365)

文章存档

2023年(8)

2022年(130)

2021年(155)

2020年(50)

2019年(22)

我的朋友

分类: Python/Ruby

2021-04-29 16:57:33

# -*- coding:utf-8 -*-

from flask import Flask, render_template, render_template_string, request

import tax

from jinja2 import Template

import re

app = Flask(__name__)

flag = 1

@app.route('/cal', methods=['GET'])

def cal_tax() -> 'html':

    try:

        # income = int(request.form['income'])

        income = int(request.args.get('income', 0))

        insurance = int(request.args.get('insurance', 0))

        exemption = int(request.args.get('exemption', 0))

        # insurance = int(request.form['insurance'])

        # exemption = int(request.form['exemption'])

        before = income-insurance-exemption

        free = 5000

        rule = [

        (80000, 0.45, 15160),

        (55000, 0.35, 7160),

        (35000, 0.3, 4410),

        (25000, 0.25, 2660),     

        (12000, 0.2, 1410),

        (3000, 0.1, 210),

        (0,0.03, 0)

        ]

        title = '个税计算结果'

        mytax = tax.calc_tax(before,free,rule)

        aftertax_income = income - insurance - mytax

        return render_template('results.html',

                                the_title=title,

                                the_income=str(income),

                                the_insurance=str(insurance),

                                the_exemption=str(exemption),

                                the_tax=str(mytax),

                                the_aftertax_income=str(aftertax_income))

    except ValueError:

        print('------------error-------------\n\n')

        def safe_jinja(s):

            # 替换括号

            s = s.replace('()', '')

            s = s.replace('[]', '')

            blacklist = ['import','os','sys','commands','subprocess','open','eval']

            for bl in blacklist:

                s = s.replace(bl, "")

            return s

        title = "货币代码输入参数的值有错"

        # income = request.form['income']

        # income = request.form['income']

        # insurance = request.form['insurance']

        # exemption = request.form['exemption']

        income = request.args.get('income', 0)

        insurance = request.args.get('insurance', 0)

        exemption = request.args.get('exemption', 0)

        print(safe_jinja(exemption))

        template = '''

        

        

            

                %s

                

            

            

            

        

            

%s

            

                

请检查输入的信息:

                

                

                

            

税前月收入:%s
四险一金:%s
专项附加扣除:%s

        ''' % (title, title, safe_jinja(income), safe_jinja(insurance), safe_jinja(exemption))

        t = Template(template)

        return t.render()

@app.route('/')

@app.route('/index')

def entry_page() -> 'html':

    return render_template('index.html',

                            the_title='PY个人所得税计算器')

@app.errorhandler(404)

def page_not_found(e) -> 'html':

    return render_template('404.html',

    url=request.url), 404

@app.errorhandler(500)

def server_error(e) -> 'html':

    template = '''

    500 Internal Server Error

        

Internal Server Error

    

The server encountered an internal error and was unable to complete your request.

    Please check jinjia2 syntax. Either the server is overloaded or there is an error in the application.

    '''

    return render_template_string(template), 500

if __name__ == '__main__':

    app.run(debug=False, port = 8003, host="0.0.0.0")

阅读(1860) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~