基于Django图像识别系统毕业设计(付源码)

 前言:Django是一个由Python编写的具有完整架站能力的开源Web框架,Django本身基于MVC模型,即Model(模型)+View(视图)+ Controller(控制器)设计模式,因此天然具有MVC的出色基因:开发快捷、部署方便、可重用性高、维护成本低等。Python加Django是快速开发、设计、部署网站的最佳组合。

目录

一.Django安装与使用

1.1环境准备

1.2创建虚拟环境

二.配置Pycharm解析器

2.1Pycharm配置

2.2settings.py配置

2.3manage.py配置

三.核心代码

四.源码获取


一.Django安装与使用

1.1环境准备

Pycharm下载地址:Pycharm 点此链接下载,选好安装路径,直接下一步,finish

Miniconda下载地址:Miniconda 安装下图的版本即可

 

 1.2创建虚拟环境

①打开刚下好的Aanconda,输入命令Conda create -n AI python=3.8(以AI为例)

 

②使用conda env list 命令可以查看下载的虚拟环境

 

③使用conda activate AI 命令,进入虚拟环境,补充使用D:命令可以切换硬盘

 

④虚拟环境下输入命令django-admin startproject myDjango (myDjango项目名)创建Django项目

⑤使用命令cd myDjango  进入项目

⑥使用命令python manage.py runserver 启动项目,访问127.0.0.1:8000 如下图即成功

二.配置Pycharm解析器

2.1Pycharm配置

①点击File->settings->项目->Python Interpreter->选择创建的虚拟环境 

2.2settings.py配置

①用Pycharn打开前面创建的项目目录,找到ALLOWED_HOSTS =['127.0.0.1','ip地址']

 

 以管理员身份运行cmd,输入命令ipconfig 就可以查看ip地址,输入ipv4的地址

 ②settings.py里面配置路径,templates 是我创建的文件夹用来存放html资源,构建页面的

③static用来存放静态资源,如css,js,img。session是存储于服务器端的特殊对象,服务器会为每一个游览器创建一个唯一的session。这个session是服务器端共享,每个游览器(客户端)独享的。session存储数据,实现数据共享。

 2.3manage.py配置

 ①在Parameters中输入 runserver 0.0.0.0:8000

 到这里,Django配置已经完成,接下来就可以编写代码了,实现相应的功能

三.核心代码

①登录页面完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ThemeBucket">
    <link rel="shortcut icon" href="#" type="image/png">

    <title>Login</title>

    <link href="../static/css/style.css" rel="stylesheet">
    <link href="../static/css/style-responsive.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <script src="../static/js/html5shiv.js"></script>
    <script src="../static/js/respond.min.js"></script>
    <![endif]-->
</head>

<body class="login-body">

<div class="container">

    <form class="form-signin" id="login_form" >
        {% csrf_token %}
        <div class="form-signin-heading text-center">
            <h1 class="sign-title">基于django的草药识别系统</h1>
            <img src="../static/images/login-logo.png" alt=""/>
        </div>
        <div class="login-wrap">
            <input type="text" class="form-control" placeholder="用户名" autofocus name="username" id="username">
            <input type="password" class="form-control" placeholder="密码" name="pwd" id="pwd">

            <button class="btn btn-lg btn-login btn-block" type="button" id="submit_btn" disabled>
                <i class="fa fa-check"></i>
            </button>

            <div class="registration">
                还未是会员?
                <a class="" href="registration.html">
                    注册
                </a>
            </div>
            <label class="checkbox">
                <input type="checkbox" value="remember-me"> 记住我
                <span class="pull-right">
                    <a data-toggle="modal" href="#myModal"> 忘记密码?</a>

                </span>
            </label>

        </div>

        <!-- Modal -->
        <div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="myModal" class="modal fade">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                        <h4 class="modal-title">Forgot Password ?</h4>
                    </div>
                    <div class="modal-body">
                        <p>Enter your e-mail address below to reset your password.</p>
                        <input type="text" name="email" placeholder="Email" autocomplete="off" class="form-control placeholder-no-fix">

                    </div>
                    <div class="modal-footer">
                        <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button>
                        <button class="btn btn-primary" type="button">Submit</button>
                    </div>
                </div>
            </div>
        </div>
        <!-- modal -->

    </form>

</div>
<script src="../static/js/jquery-1.10.2.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
<script src="../static/js/modernizr.min.js"></script>
<script>

   function showErrCss(id,msg){
      $(id).css("border","2px solid red");
      $("#submit_btn").attr("disabled",true);
      $(id).val("");
      $(id).attr("placeholder",msg);
   }

   $().ready(function(){
        var username_state = false;
        var passwd_state = false;

        $("#username").blur(function(){
            if($(this).val() == ''){
                showErrCss(this,"用户名不能为空,请输入");
            }else{
                $(this).css("border","1px solid #eaeaec");
                username_state = true;
                if(passwd_state){
                    $("#submit_btn").attr("disabled",false);
                }
            }
        });
        $("#pwd").blur(function(){
            if($(this).val() == '' ){
               showErrCss(this,"密码不能为空,请输入");
            }else if(! /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,8}$/.test($(this).val())){
                showErrCss(this,"密码格式有误,要求6-8位字母+数字");
            }else{
                $(this).css("border","1px solid #eaeaec");
                passwd_state = true;
                if(username_state){
                    $("#submit_btn").attr("disabled",false);
                }
            }
        });

        $("#submit_btn").click(function(){
            $.post("/login/",
                    $("#login_form").serialize(),
                    function(data,statu){
                        if(data.code == 101){
                            window.location.href = "/index/"
                        }else if(data.code == 102){
                            showErrCss("#username",data.msg)
                        }else if(data.code == 103){
                            showErrCss("#pwd",data.msg)
                        }
                    });
        });
   });
</script>

</body>
</html>

②首页页面完整代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>智能服务</title>
    <!--ios7-->
    <link rel="stylesheet" type="text/css" href="../static/js/ios-switch/switchery.css" />
</head>

<body class="sticky-header">

<section>
    <div class="left-side sticky-left-side">
        <div class="left-side-inner">

            <!--sidebar nav start-->
            <ul class="nav nav-pills nav-stacked custom-nav">
                <li class="active"><a href="index.html"><i class="fa fa-home"></i> <span>智能服务</span></a></li>
                <li class="menu-list"><a href=""><i class="fa fa-laptop"></i> <span>视觉智能服务</span></a>
                    <ul class="sub-menu-list">
                        <li><a href="blank_page.html">图像识别</a></li>
                        <li><a href="boxed_view.html">图像搜索</a></li>
                        <li><a href="leftmenu_collapsed_view.html"> 图像鉴定</a></li>
                        <li><a href="horizontal_menu.html">视频追踪</a></li>
                    </ul>
                </li>
                <li class="menu-list"><a href=""><i class="fa fa-book"></i> <span>语音智能服务</span></a>
                    <ul class="sub-menu-list">
                        <li><a href="general.html"> 语音识别</a></li>
                        <li><a href="buttons.html"> 语音生成</a></li>
                    </ul>
                </li>
                <li class="menu-list"><a href=""><i class="fa fa-book"></i> <span>自然语言智能服务</span></a>
                    <ul class="sub-menu-list">
                        <li><a href="general.html"> OCR</a></li>
                        <li><a href="buttons.html"> 文字生成</a></li>
                        <li><a href="tabs-accordions.html"> 机器翻译</a></li>
                        <li><a href="typography.html">智能聊天</a></li>
                    </ul>
                </li>
            </ul>
            <!--sidebar nav end-->

        </div>
    </div>
    <!-- left side end-->
    
    <!-- main content start-->
    <div class="main-content" >

        <!-- header section start-->
        <div class="header-section">

            <!--toggle button start-->
            <a class="toggle-btn"><i class="fa fa-bars"></i></a>
            <!--toggle button end-->

            <!--search start-->
            <form class="searchform" action="index.html" method="post">
                <input type="text" class="form-control" name="keyword" placeholder="Search here..." />
            </form>
        </div>
        <!-- header section end-->

        <!-- page heading start-->
        <div class="page-heading">
            <h3>
                智能服务
            </h3>
            <ul class="breadcrumb">
                <li>
                    <a href="#">智能服务</a>
                </li>
                <li class="active"> 视觉智能服务 </li>
            </ul>
            <div class="state-info">
                <section class="panel">
                    <div class="panel-body">
                        <div class="summary">
                            <span>今日访问量</span>
                            <h3 class="red-txt">45,600</h3>
                        </div>
                        <div id="income" class="chart-bar"></div>
                    </div>
                </section>
                <section class="panel">
                    <div class="panel-body">
                        <div class="summary">
                            <span>总访问量</span>
                            <h3 class="green-txt">45,600</h3>
                        </div>
                        <div id="expense" class="chart-bar"></div>
                    </div>
                </section>
            </div>
        </div>
        <!-- page heading end-->

        <!--body wrapper start-->
        <div class="wrapper">
            <div class="row">
                <div class="col-lg-7">
                <section class="panel">
                    <header class="panel-heading">
                        图像识别
                        <span class="tools pull-right">
                            <a class="fa fa-chevron-down" href="javascript:;"></a>
                            <a class="fa fa-times" href="javascript:;"></a>
                         </span>
                    </header>
                    <div class="panel-body">
                        <div class="row">

                            <div class="col-md-8">
                                <form class="form-horizontal bucket-form">
                                    {% csrf_token %}
                                    <div class="form-group">
                                        <label class="col-sm-3 control-label">识别类型</label>

                                        <div class="col-sm-9 icheck ">

                                            <div class="flat-grey ">
                                                <div class="radio ">
                                                    <input tabindex="3" type="radio"  name="demo-radio" value="1">
                                                    <label>动物识别 </label>
                                                </div>
                                            </div>
                                            <div class="flat-red ">
                                                <div class="radio ">
                                                    <input tabindex="3" type="radio"  name="demo-radio" value="2">
                                                    <label>植物识别 </label>
                                                </div>
                                            </div>

                                            <div class="flat-green ">
                                                <div class="radio ">
                                                    <input tabindex="3" type="radio"  name="demo-radio" value="3">
                                                    <label>果蔬识别</label>
                                                </div>
                                            </div>
                                            <div class="single-row"></div>
                                            <div class="flat-blue">
                                                <div class="radio ">
                                                    <input tabindex="3" type="radio"  name="demo-radio" value="4">
                                                    <label>logo识别</label>
                                                </div>
                                            </div>

                                            <div class="flat-yellow ">
                                                <div class="radio ">
                                                    <input tabindex="3" type="radio"  name="demo-radio" value="5">
                                                    <label>红酒识别 </label>
                                                </div>
                                            </div>

                                            <div class="flat-purple ">
                                                <div class="radio ">
                                                    <input tabindex="3" type="radio"  name="demo-radio" value="6">
                                                    <label>货币识别 </label>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="form-group last">
                                    <label class="control-label col-sm-3">图像上传</label>
                                    <div class="col-sm-9">
                                        <div class="fileupload fileupload-new" data-provides="fileupload" style=" margin-left: 20px">
                                            <div class="fileupload-new thumbnail" style="width: 200px; height: 150px;">
                                                <img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt="">
                                            </div>
                                            <div class="fileupload-preview fileupload-exists thumbnail" style="max-width: 200px; max-height: 150px; line-height: 20px;"></div>
                                            <div>
                                                   <span class="btn btn-default btn-file">
                                                   <span class="fileupload-new"><i class="fa fa-paper-clip"></i> 选择图像</span>
                                                   <span class="fileupload-exists"><i class="fa fa-undo"></i> 修改</span>
                                                   <input type="file" class="default" id="file">
                                                   </span>
                                                <a href="#" class="btn btn-danger fileupload-exists" data-dismiss="fileupload"><i class="fa fa-trash"></i> Remove</a>
                                            </div>
                                        </div>
                                        <br>
                                        <div class=" col-lg-10" style="margin-left:5px">
                                            <button class="btn btn-primary" type="button" id="btn">提交</button>
                                        </div>
                                    </div>
                                </div>
                                    <div class="form-group" style="margin-left:70px">
                                        <span class="label label-danger ">注意!</span>
                                             <span>
                                             支持的浏览器包括 Firefox, Chrome, Opera,Safari and IE10
                                             </span>
                                </div>
                                </form>
                            </div>
                        </div>
                    </div>
                </section>
            </div>

                <div class="col-md-5">
                    <div class="panel">
                        <header class="panel-heading">
                            预测结果
                            <span class="tools pull-right">
                                <a href="javascript:;" class="fa fa-chevron-down"></a>
                                <a href="javascript:;" class="fa fa-times"></a>
                             </span>
                        </header>
                        <div class="panel-body">
                            <ul class="goal-progress">
                                <li>

                                    <div class="details">
                                        <div class="title">
                                            <a href='' id="text1" >结果一</a>
                                            <div>
                                                <a href="" id="link">百度百科</a>
                                                <p id="title"> 详情:</p>
                                            </div>
                                        </div>
                                        <div class="progress progress-xs">
                                            <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" id='pros' style="width:0%">
                                                <span class="" id="val1"></span>
                                            </div>
                                        </div>
                                    </div>
                                </li>
                                <li>

                                    <div class="details">
                                        <div class="title">
                                            <a href="#" id="text2">结果二</a>
                                        </div>
                                        <div class="progress progress-xs">
                                            <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" id='pros1' style="width:0%">
                                                <span class="" id="val2"></span>
                                            </div>
                                        </div>
                                    </div>
                                </li>
                                <li>

                                    <div class="details">
                                        <div class="title">
                                            <a href="#" id="text3">结果三</a>
                                        </div>
                                        <div class="progress progress-xs">
                                            <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" id='pros2' style="width:0%">
                                                <span class="" id="val3"></span>
                                            </div>
                                        </div>
                                    </div>
                                </li>
                                <li>

                                    <div class="details">
                                        <div class="title">
                                            <a href="#" id="text4">结果四</a>
                                        </div>
                                        <div class="progress progress-xs">
                                            <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" id='pros3' style="width:0%">
                                                <span class="" id="val4"></span>
                                            </div>
                                        </div>
                                    </div>
                                </li>
                                <li>

                                    <div class="details">
                                        <div class="title">
                                            <a href="#" id="text5">结果五</a>
                                        </div>
                                        <div class="progress progress-xs">
                                            <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" id='pros4' style="width:0%">
                                                <span class="" id="val5"></span>
                                            </div>
                                        </div>
                                    </div>
                                </li>
                            </ul>

                        </div>
                    </div>
                </div>
            </div>

        </div>
        <!--body wrapper end-->

        <!--footer section start-->
        <footer>
            2023 &copy; 猿来如此 </a>
        </footer>
        <!--footer section end-->

    </div>
    <!-- main content end-->
</section>

<script>
    $().ready(function(){
        $("#btn").click(function(){
            var formdata = new FormData()
            formdata.append("typeRadio",$('input:radio:checked').val());
            formdata.append("csrfmiddlewaretoken",$('[name="csrfmiddlewaretoken"]').val());
            formdata.append("image",$("#file")[0].files[0]);

            $.ajax({
                type:"post",
                url:"/recongnize/",
                data:formdata,
                processData:false,
                contentType:false,
                success:function(data,status){
                    alert(data.data.result[0].baike_info.baike_url)
                    alert(data.data.result[0].baike_info.description)

                    var loaded = parseInt(data.data.result[0].score*100)+"%";
                    $('#pros').width(loaded);
                    $("#text1").html(data.data.result[0].name);
                    $("#val1").html(data.data.result[0].score);
                    $("#title").html(data.data.result[0].baike_info.description)
                    $("#link").html(data.data.result[0].baike_info.baike_url)



                    var loaded = parseInt(data.data.result[1].score*100)+"%";
                    $('#pros1').width(loaded);
                    $("#text2").html(data.data.result[1].name);
                    $("#val2").html(data.data.result[1].score);


                    var loaded = parseInt(data.data.result[2].score*100)+"%";
                    $('#pros2').width(loaded);
                    $("#text3").html(data.data.result[2].name);
                    $("#val3").html(data.data.result[2].score);

                    var loaded = parseInt(data.data.result[3].score*100)+"%";
                    $('#pros3').width(loaded);
                    $("#text4").html(data.data.result[3].name);
                    $("#val4").html(data.data.result[3].score);

                    var loaded = parseInt(data.data.result[4].score*100)+"%";
                    $('#pros4').width(loaded);
                    $("#text5").html(data.data.result[4].name);
                    $("#val5").html(data.data.result[4].score);

                }
            })
        })
    })


</script>

</body>
</html>

 css,html,js,py等文件太多,无法全部展示,篇幅过长会使读者疲惫,只能展示核心代码


四.源码获取

        私信获取源码,有问题可以关注留言或私信,计算机毕业设计(小程序,网页设计,数据库,php开发等)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/609562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零售数据分析之连带销售分析怎么做

连带销售是指顾客在购买某款产品后&#xff0c;通常会顺手也买上另一款产品。这种情况在超市零售中屡见不鲜&#xff0c;因此通常来说在做超市零售数据分析时&#xff0c;都需要做一个详尽的连带销售分析。那么做零售数据分析中的连带销售分析&#xff0c;要计算分析哪些指标&a…

MBR与GPT分区表

文章目录 MBR分区表MBR分区表结构MBR分区表项查看U盘的分区表信息查看系统中所有磁盘的分区类型获取分区表信息 GPT分区表保护性MBRGPT分区表头格式GPT分区表项格式分区类型分区属性分区表项内容 MBR分区表 CHS &#xff1a;磁头&#xff08;Heads&#xff09;、柱面(Cylinder…

AH8651-220V转3.3V低成本方案

本篇文章将介绍一种220V转3.3V低成本方案&#xff0c;该方案采用AH8651芯片&#xff0c;无需外接电感&#xff0c;具有高效率的智能控制、宽广的交流输入范围、内置过流保护、欠压保护和过热自动关断等功能。AH8651可以通过SEL引脚选择输出电压&#xff0c;启动时通过内部高压电…

【连连国际注册/登录安全分析报告】

连连国际注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨…

Numpy的数组操作

文章目录 数组的创建创建全0的二维数组a(3,3)全1的二维数组b&#xff08;3,4&#xff09;随机数二维数数组c&#xff08;2,3&#xff09;效果截图 数组的属性查看b数组的维度查看b数组元素的个数效果截图 数组的维度操作将数组c的行变列&#xff0c;返回最后一个元素返回数组c第…

vue3打开页面后文本框自动获得焦点

字符串写法 <script setup> import { ref, onMounted } from vue import ./index.cssconst input ref(null)onMounted(() > {input.value.focus() }) </script><template><div class"m-home-wrap"><input ref"input" />…

用Rust打印杨辉三角

一、杨辉三角是什么&#xff1f; 杨辉三角是一个著名的数学图形&#xff0c;它展示了二项式系数的排列方式。 杨辉三角是一种将二项式系数以三角形阵列排列的数学图形&#xff0c;具有丰富的历史和数学意义。 杨辉三角的历史起源可以追溯到中国南宋时期&#xff0c;由数学家杨辉…

「 网络安全常用术语解读 」漏洞利用预测评分系统EPSS详解

1. 概览 EPSS&#xff08;Exploit Prediction Scoring System&#xff0c;漏洞利用预测评分系统&#xff09; 提供了一种全新的高效、数据驱动的漏洞管理功能。EPSS是一项数据驱动的工作&#xff0c;使用来自 CVE 的当前威胁信息和现实世界的漏洞数据。 EPSS 模型产生 0 到 1&…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15-GPIO中断控制实验

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

大语言模型LLM原理篇

大模型席卷全球&#xff0c;彷佛得模型者得天下。对于IT行业来说&#xff0c;以后可能没有各种软件了&#xff0c;只有各种各样的智体&#xff08;Agent&#xff09;调用各种各样的API。在这种大势下&#xff0c;笔者也阅读了很多大模型相关的资料&#xff0c;和很多新手一样&a…

电脑ip地址设置成什么比较好

随着信息技术的快速发展&#xff0c;IP地址已成为电脑在网络世界中的“身份证”。它不仅是电脑在网络中进行通信的基础&#xff0c;也直接关系到网络连接的稳定性、安全性和效率。然而&#xff0c;面对众多IP地址设置选项&#xff0c;许多用户可能会感到困惑。那么&#xff0c;…

图形网络的自适应扩散 笔记

1 Title Adaptive Diffusion in Graph Neural Networks&#xff08;Jialin Zhao、Yuxiao Dong、Ming Ding、Evgeny Kharlamov、Jie Tang&#xff09;【NIPS 2021】 2 Conclusion The neighborhood size in GDC is manually tuned for each graph by conductin…

docker-compose集成elasticsearch7.17.14+kibana7.17.14

1.docker和compose版本必须要高 2.准备ik分词器&#xff08;elasticsearch-analysis-ik-7.17.14&#xff09;&#xff0c;下面会用到 https://github.com/infinilabs/analysis-ik/releases?page2 3.配置es-compose.yml&#xff08;切记映射容器内路径不能更改,es和kibana服务…

每日OJ题_记忆化搜索⑤_力扣329. 矩阵中的最长递增路径

目录 力扣329. 矩阵中的最长递增路径 解析代码1_爆搜递归&#xff08;超时&#xff09; 解析代码2_记忆化搜索 力扣329. 矩阵中的最长递增路径 329. 矩阵中的最长递增路径 难度 困难 给定一个 m x n 整数矩阵 matrix &#xff0c;找出其中 最长递增路径 的长度。 对于每…

【LeetCode算法】389. 找不同

提示&#xff1a;此文章仅作为本人记录日常学习使用&#xff0c;若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案 一、题目 给定两个字符串 s 和 t &#xff0c;它们只包含小写字母。字符串 t 由字符串 s 随机重排&#xff0c;然后在随机位置添…

移动端自动化测试工具 Appium 之 main 启动

文章目录 一、背景二、生成xml文件2.1、创建xml方法2.2、执行主类MainTest2.3、自动生成的xml2.4、工程目录2.5、执行结果 三、命令行执行appium服务四、主方法启动类五、集成Jenkins六、总结 一、背景 Jenkins 做集成测试是不错的工具&#xff0c;那么UI自动化是否可以&#…

macOS12安装 php7.1和apache

1. 安装php 7.1 macOS12不再自带php brew tap shivammathur/php 查看可安装版本 brew search php 安装指定版本&#xff08;禅道适用PHP运行环境(7.0/7.1/7.2版本)&#xff09; brew install php7.1 环境配置 vim ~/.zshrc export PATH"/usr/local/opt/php7.1/bin:…

uni-app 滚动到指定位置

方法1&#xff1a;使用标签&#xff0c;可以将页面横向&#xff08;或纵向&#xff09;滚动到指定位置 无法滚动 将代码放在setTimeout&#xff0c;nextTick里执行 <!-- 左边 --><scroll-view show-scrollbar"false" scroll-y"true" class"…

Flutter笔记:Widgets Easier组件库(13)- 使用底部弹窗

Flutter笔记 Widgets Easier组件库&#xff08;13&#xff09;使用底部弹窗 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this …

局域网语音对讲系统_IP广播对讲系统停车场解决方案

局域网语音对讲系统_IP广播对讲系统停车场解决方案 需求分析&#xff1a; 随着国民经济和社会的发展&#xff0c; 选择坐车出行的民众越来越多。在保护交通安全的同时&#xff0c;也给停车场服务部门提出了更高的要求。人们对停车场系统提出了更高的要求与挑战&#xff0c; 需要…