• 技术文章 >web前端 >Bootstrap教程

    Django配合Bootstrap怎么制作计算器(实战)

    青灯夜游青灯夜游2022-01-28 18:04:51转载892
    本篇文章手把手带大家使用Django+Bootstrap制作一个计算器,希望对大家有所帮助!

    大前端成长进阶课程:进入学习

    准备工作

    创建一个应用

    1.png

    添加应用到配置

    2.png

    创建一个html

    3.png

    编写视图函数

    from django.shortcuts import render
    
    
    # Create your views here.
    
    def home(request):
        return render(request, 'index.html')

    4.png

    配置路由

    from django.contrib import admin
    from django.urls import path,include
    
    from app.views import home
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('',home,name='hoome'),
    ]

    5.png

    导入Bootstrap前端框架

    下载地址

    https://github.com/twbs/bootstrap/releases/download/v3.4.1/bootstrap-3.4.1-dist.zip

    将css、fonts、js复制到static文件夹下 没有则创建该文件夹。【相关推荐:《bootstrap教程》】

    6.png

    编写前端内容

    {% load static %}
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>计算器</title>
        <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
        <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
        <script src="{% static 'js/bootstrap.min.js' %}"></script>
    
        <style>
            body{
                background-position: center 0;
                background-repeat: no-repeat;
                background-attachment: fixed;
                background-size: cover;
                -webkit-background-size: cover;
                -o-background-size: cover;
                -moz-background-size: cover;
                -ms-background-size:cover;
            }
            .input_show{
                margin-top: 35px;
                max-width: 280px;
                height: 35px;
            }
            .btn_num{
                margin:1px 1px 1px 1px;
                width: 60px;
            }
            .btn_clear{
                margin-left: 40px;
                margin-right: 20px;
            }
            .extenContent{
                height: 300px;
            }
        </style>
    </head>
    <body>
    <div>
        <div>
            <div class="col-xs-1 col-sm-4"> </div>
            <div id="computer" class="col-xs-1 col-sm-6">
                <input type="text" id="txt_code" name="txt_code" value="" class="form-control input_show" placeholder="" disabled>
                <input type="text" id="txt_result" name="txt_result" value="" class="form-control input_show" placeholder="结果" disabled>
                <br>
                <div>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_7()">7</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_8()">8</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_9()">9</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_div()">/</button>
                    <br>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_4()">4</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_5()">5</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_6()">6</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_mul()">*</button>
                    <br>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_1()">1</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_2()">2</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_3()">3</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_sub()">-</button>
                    <br>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_0()">0</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_00()">00</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_dot()">.</button>
                    <button type="button" class="btn btn-default btn_num" onclick="fun_add()">+</button>
                </div>
            <div>
            <br>
            <button type="button" class="btn btn-success btn-lg btn_clear" id="lgbut_clear" onclick="fun_clear()">
        清空
    </button>
    <button type="button" class="btn btn-primary btn-lg" id="lgbut_compute" >
        计算
    </button>
        </div>
            </div>
                <div class="col-xs-1 col-sm-2"></div>
    </div>
        </div>
    <div></div>
    <script>
        var x=document.getElementById("txt_code");
        var y=document.getElementById("txt_result");
        function fun_7() {
            x.value+='7';
        }
        function fun_8() {
            x.value+='8';
        }
        function fun_9() {
            x.value+='9';
        }
        function fun_div() {
            x.value+='/';
        }
        function fun_4() {
            x.value+='4';
        }
        function fun_5() {
            x.value+='5';
        }
        function fun_6() {
            x.value+='6';
        }
        function fun_mul() {
            x.value+='*';
        }
        function fun_1() {
            x.value+='1';
        }
        function fun_2() {
            x.value+='2';
        }
        function fun_3() {
            x.value+='3';
        }
        function fun_sub() {
            x.value+='-';
        }
        function fun_0() {
            x.value+='0';
        }
        function fun_00() {
            x.value+='00';
        }
        function fun_dot() {
            x.value+='.';
        }
        function fun_add() {
            x.value+='+';
        }
        function fun_clear() {
            x.value='';
            y.value='';
    
        }
    </script>
    <script>
        function ShowResult(data) {
            var y = document.getElementById('txt_result');
            y.value = data['result'];
        }
    </script>
    <script>
        $('#lgbut_compute').click(function () {
            $.ajax({
                url:'compute/',
                type:'POST',
                data:{
                    'code':$('#txt_code').val()
                },
                dataType:'json',
                success:ShowResult
            })
        })
    </script>
    </body>
    
    </html>

    编写视图函数

    import subprocess
    
    from django.http import JsonResponse
    from django.shortcuts import render
    
    # Create your views here.
    from django.views.decorators.csrf import csrf_exempt
    from django.views.decorators.http import require_POST
    
    
    def home(request):
        return render(request, 'index.html')
    
    
    @csrf_exempt
    def compute(request):
        code = request.POST.get('code')
        try:
            code = 'print(' + code + ')'
            result = subprocess.check_output(['python', '-c', code], universal_newlines=True, stderr=subprocess.STDOUT,timeout=30)
        except:
            result='输入错误'
    
        return JsonResponse(data={'result': result})

    7.png

    测试

    8.png

    9.png

    10.png

    更多关于bootstrap的相关知识,可访问:bootstrap基础教程!!

    以上就是Django配合Bootstrap怎么制作计算器(实战)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:Django Bootstrap 计算器
    上一篇:Bootstrap中怎么实现加载效果?读取图标(Spinners)组件 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 关于django中mysql的charset配置• redis之django-redis使用• Bootstrap中怎么添加列表?列表群组的用法浅析• Bootstrap中怎么使用模态框?Modal组件用法浅析• Bootstrap中怎么使用Toasts组件?(示例讲解)
    1/1

    PHP中文网