my大众点评作业思路实现:app+跨域+模板引擎+artDialog弹出层+ajax基本增删改查的使用...

本文主要是介绍my大众点评作业思路实现:app+跨域+模板引擎+artDialog弹出层+ajax基本增删改查的使用...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

八、作业

8.1、请完成一个简单的分布式应用,使用Java作为服务器对外发布服务,PC客户端实现“品牌或商品”的管理,移动端实现如下列表:

  • a)、分析出数据库的设计,建库、建表 (MySQL)
  • b)、创建后台项目,实现5个服务,可以使用RETSFul (IDEA)
  • c)、创建PC Web项目(HBuilder),使用AJAX消费后台提供的5个服务 ,完成增加、删除、修改、查询功能
  • d)、创建App项目(HBuilder),先完成页面的静态布局,使用AJAX调用服务
  • e)、注意跨域、可以选择三方的UI框架,但界面需完全一样
  • f)、在PC Web中,添加,删除,编辑、详细功能请使用artDialog弹出层
  • g)、在PC Web与App中请使用artTemplate渲染页面HTML

系统结构如下:

 参考网站:https://m.dianping.com/

 

 

  • a)、分析出数据库的设计,建库、建表 (MySQL)
  • b)、创建后台项目,实现5个服务,可以使用RETSFul (IDEA)
  1. 使用idea新建maven项目
  2. 右键变为web项目
  3. 在pom.xml文件中导入相关的依赖包,并在构建中把依赖包放在lib文件夹里面:
  4. 添加spring资源文件

     

     

  5. 在web.xml文件中添加相关的配置springmvc DispatcherServlet(中心控制器)
  6. 开始写相关的后台代码

     

  7.  总index.html代码实现与后台效果展示

    <%--Created by IntelliJ IDEA.User: Sunny.byDate: 2017/12/14Time: 20:07To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head><title>大众点评</title>
    </head>
    <link rel="stylesheet" type="text/css" href="js/artDialog6/ui-dialog.css" />
    <style type="text/css">.dialog {width: 350px;height: 250px;margin: auto auto;line-height: 12px;display: none;}.dialog p {text-indent: 2em;}#addForm,#formEmps {display: none;}.pic {width: 50px;height: 50px;}</style>
    <body>
    <table id="tab" border="1" cellspacing="1" cellpadding="1" width="90%" align="center"><tr style="height: 40px;"><th>编号</th><th>图片</th><th>标题</th><th>地区</th><th>类别</th><th>现价</th><th>条数</th><th>浏览量</th><th>操作<button onclick="addBtn()" style="float: right;background: cornflowerblue;width: 55px;height: 33px;">添加</button></th></tr><tbody id="tbody"></tbody>
    </table><%--弹窗-遍历所有(查询):多个遍历模板引擎开始--%>
    <script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/artDialog6/dialog-min.js" type="text/javascript" charset="utf-8"></script>
    <%--模板引擎:与AJAX结合应用--%>
    <script src="js/artTemplate3/template.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/html" id="querytmp">{{each shoplist as shop}}<tr align="center"><td>{{shop.id}}</td><td><img src="images/{{shop.img}}" class="pic"></td><td>{{shop.title}}</td><td>{{shop.area}}</td><td>{{shop.discountText}}</td><td>{{shop.priceNew | round:''}}</td><td>{{shop.priceOld | round:''}}</td><td>{{shop.boughtCound}}</td><td><button onclick='del("{{shop.id}}")'>删除</button> <button οnclick='exit("{{shop.id}}")'>修改</button> <button onclick='xiangqing("{{shop.id}}")'>详情</button></td></tr>
      {{/each}}
    </script>
    <%--弹窗-遍历所有(查询):多个遍历模板引擎结束--%><%--弹窗-详情:单个模板引擎开始--%>
    <script type="text/html" id="xiangqingtmp"><form class="dialog"><p><label>图片:</label><span id="eimg"><img src="images/{{img}}" class="pic"></span></p><p><label>商品编号:</label><span id="eid">{{id}}</span></p><p><label>标题:</label><span id="etitle">{{title}}</span></p><p><label>地区:</label><span id="earea">{{area}}</span></p><p><label>现价:</label><span id="epriceNew">{{priceNew | round:''}}</span></p><p align="right" style="margin-right: 2em;"><button style="background: cornflowerblue;width: 55px;height: 33px;" onclick="sure()">确认</button></p></form>
    </script>
    <%--弹窗-详情:单个模板引擎结束--%><%--修改模板引擎开始--%>
    <script type="text/html" id="xiugaitpm"><form id="formEmps"><p><label for="id">编号:</label><input name="id" id="xid" type="text" value="{{id}}" required="required" maxlength="32"/></p><p><label for="img">图片:</label><input name="img" id="ximg" value="{{img}}" required="required" maxlength="8"/></p><p><label for="title">标题:</label><input name="title" id="xtitle" value="{{title}}" type="text" required="required" maxlength="128"/></p><p><label for="area">地区:</label><input name="area" id="xarea" value="{{area}}" type="text" required="required" maxlength="11"/></p><p><label for="priceNew">现价:</label><input name="priceNew" id="xpriceNew" value="{{priceNew}}" type="text" required="required" maxlength="11"/></p><p><button type="button" onclick="update()" style="width: 100%; height:40px; background: cornflowerblue;">保存</button></p></form>
    </script>
    <%--修改模板引擎结束--%><%--添加弹窗开始--%>
    <form id="addForm"><p><label for="img">图片:</label><input name="img" id="img" value="" required="required" maxlength="8"/></p><p><label for="id">编号:</label><input name="id" id="id" type="text" value="" required="required" maxlength="32"/></p><p><label for="title">标题:</label><input name="title" id="title" value="" type="text" required="required" maxlength="128"/></p><p><label for="area">地区:</label><input name="area" id="area" value="" type="text" required="required" maxlength="11"/></p><p><label for="discountText">类别:</label><input name="discountText" id="discountText" value="" type="text" required="required" maxlength="11"/></p><p><label for="priceNew">现价:</label><input name="priceNew" id="priceNew" value="" type="text" required="required" maxlength="11"/></p><p><button type="button" onclick="add()" style="width: 100%; height:40px; background: cornflowerblue;">添加</button></p>
    </form>
    <%--添加弹窗结束--%><script type="text/javascript">/*方法封装*/var shop = {url:"http://localhost:8080/shop/",init: function() {$.ajax({url:shop.url,type: "get",success: function(data) {$("#tab tr:gt(0)").remove();/*$(data.data).each(function(i,h){$("#tab").append("<tr><td>"+h.boughtCound+"</td></tr>");console.log(h.boughtCound);});*/$("#tab").append(template("querytmp",{shoplist:data.data}));}});//为模板引擎定义辅助函数
                template.helper("round",function(value,mark){return (mark||"")+Math.round(value);});},xiangqing: function(id){//数据需从后台遍历
                $.ajax({url:shop.url+id,type: "get",success: function(data) {//console.log("现价:"+data.priceNew+",图片:"+data.img+",浏览量:"+data.boughtCound);
                        $("body").append(template("xiangqingtmp",data.data));/*弹窗*/var d = dialog({title: '店铺详情信息',content: $(".dialog"),backdropOpacity:0.3});d.showModal();}});},del: function(i) {var delflag = confirm("您真的要删除吗?");if(delflag){$.ajax({url:shop.url+i,type:"delete",success:function(){alert("删除成功");shop.init();}});}},exit: function(i){$.ajax({url:shop.url+i,type: "get",success: function(data) {//console.log("现价:"+data.priceNew+",图片:"+data.img+",浏览量:"+data.boughtCound);
                        $("body").append(template("xiugaitpm",data.data));/*弹窗*/var d = dialog({title: '修改店铺信息',content: $("#formEmps"),backdropOpacity:0.3});d.showModal();}});},getUpdataShop: function () {return {"id": $("#xid").val(),"img": $("#ximg").val(),"title": $("#xtitle").val(),"area": $("#xarea").val(),"discountText": $("#xdiscountText").val(),"priceNew": $("#xpriceNew").val(),"priceOld": $("#xpriceOld").val(),"boughtCound": $("#xboughtCound").val()};},update: function(){$.ajax({url:shop.url,type:"put",contentType: "application/json;charset=utf-8",data:JSON.stringify(shop.getUpdataShop()),dataType: "json",success: function(data) {alert("修改成功");shop.init();}});},getAddShop: function () {return {"id": $("#id").val(),"img": $("#img").val(),"title": $("#title").val(),"area": $("#area").val(),"discountText": $("#discountText").val(),"priceNew": $("#priceNew").val(),"priceOld": $("#priceOld").val(),"boughtCound": $("#boughtCound").val()};},add: function() {$.ajax({url:shop.url,type:"post",contentType: "application/json;charset=utf-8",data:JSON.stringify(shop.getAddShop()),dataType: "json"});shop.init();}}/*方法调用*/shop.init();function xiangqing(i){shop.xiangqing(i);}/*对话框:关闭*/function sure(){document.getElementById("dialog").style.display="none";}function del(i){shop.del(i);}function exit(i){shop.exit(i);}function update(){shop.update();}function  addBtn() {/*弹窗*/var d = dialog({title: '添加店铺信息',content: $("#addForm"),backdropOpacity:0.3});d.showModal();}function add(){shop.add();}
    </script>
    </body>
    </html>

    查询所有效果图

    详情弹窗效果图

    修改弹窗效果图;添加弹窗效果图

  8. 创建App项目(HBuilder),先完成页面的静态布局,使用AJAX调用服务;app代码实现
    <!DOCTYPE html>
    <html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!--标准mui.css--><link rel="stylesheet" href="css/mui.min.css"><link rel="stylesheet" type="text/css" href="js/artDialog6/ui-dialog.css" /><!--App自定义的css--><link rel="stylesheet" type="text/css" href="css/app.css"/><title>大众App</title><style>.title{margin: 20px 15px 10px;color: #6d6d72;font-size: 15px;}.oa-contact-cell.mui-table .mui-table-cell {padding: 11px 0;vertical-align: middle;}.oa-contact-cell {position: relative;margin: -11px 0;}.oa-contact-avatar {width: 75px;}.oa-contact-avatar img {border-radius: 50%;}.oa-contact-content {width: 100%;}.oa-contact-name {margin-right: 20px;}.oa-contact-name, oa-contact-position {float: left;}/*首页:*/* {margin: 0;padding: 0;box-sizing: border-box;}body {font-family: Hiragino Sans GB,Arial,Helvetica,\\5B8B\4F53,sans-serif;font-size: 14px;}#top01 {width: 100%;height: 50px;background: #f63;text-align: center;line-height: 50px;}#top01 span {color: #FFFFFF;font-size: 14px;text-align: center;}.topWeizi {height: 100%;display: inline-block;}#top01 #top01_left{padding-left: 10px;width: 15%;/*background: #2AC845;*/float: left;}#top01 #top01_right {width: 10%;/*background: orchid;*/float: right;}#top01 #top01_right span {font-size: 32px;}#top01 #search {width: 75%;float: left;/*background: blue;*/}#top01 #search input {width: 100%;height: 30px;background: #FFFFFF;border-radius: 20px;}#nav01 {width: 100%;height: 195px;background: #FFFFFF;}#nav01 .nav01_inner {width: 98%;height: 100%;margin: 0 auto;}#nav01 .nav01_cls {width: 20%;height: 87px;float: left;text-align: center;padding-top: 10px;}#nav01 .nav01_inner img {width: 44px;height: 44px;}#nav01 .nav01_inner span {display: block;}#guanggao01 {width: 100%;height: 280px;background: #FFFFFF;margin: 30px 0 ;}#guanggao01 img {width: 100%;height: 100%;}.img_cls  {width: 90px;height: 90px;float: left;}.context_cls {/*background: palevioletred;*/float: left;padding-left: 20px;}.context_cls div {color: gray;font-size: 14px;line-height: 20px;}.xiaoshouliang {float: right;margin-left: 15px;}.fontcolor {color: #f63;font-size: 15px;}</style></head><body><nav class="mui-bar mui-bar-tab"><a class="mui-tab-item mui-active" href="#tabbar"><span class="mui-icon mui-icon-home"></span><span class="mui-tab-label">首页</span></a><a class="mui-tab-item" href="#tabbar-with-chat"><span class="mui-icon mui-icon-email"><span class="mui-badge">9</span></span><span class="mui-tab-label">消息</span></a><a class="mui-tab-item" href="#tabbar-with-contact"><span class="mui-icon mui-icon-contact"></span><span class="mui-tab-label">通讯录</span></a><a class="mui-tab-item" href="#tabbar-with-map"><span class="mui-icon mui-icon-gear"></span><span class="mui-tab-label">设置</span></a></nav><div class="mui-content"><div id="tabbar" class="mui-control-content mui-active"><header id="top01"><div class="topWeizi" id="top01_left"><span>珠海<span class="mui-icon mui-icon-arrowdown"></span></span></div><div class="topWeizi" id="search"><input type="text" name="sousuo" id="sousuo" value="" placeholder="输入商户名.地点"/></div><div class="topWeizi" id="top01_right"><span class="mui-icon mui-icon-contact"></span></div></header><nav id="nav01"><div class="nav01_inner"><div class="nav01_cls"><img src="images/nav01.png"/><span id="">美食</span></div><div class="nav01_cls"><img src="images/nav02.png"/><span id="">猫眼电影</span></div><div class="nav01_cls"><img src="images/nav03.png"/><span id="">酒店</span></div><div class="nav01_cls"><img src="images/nav04.png"/><span id="">休闲娱乐</span></div><div class="nav01_cls"><img src="images/nav05.png"/><span id="">外卖</span></div><div class="nav01_cls"><img src="images/nav06.png"/><span id="">火锅</span></div><div class="nav01_cls"><img src="images/nav07.png"/><span id="">丽人</span></div><div class="nav01_cls"><img src="images/nav08.png"/><span id="">购物</span></div><div class="nav01_cls"><img src="images/nav09.png"/><span id="">周边游</span></div><div class="nav01_cls"><img src="images/nav10.png"/><span id="">KTV</span></div></div></nav><div id="guanggao01"><img src="images/guanggao01.png"/></div><!--<div id="section"></div>--><ul class="mui-table-view" id="section"></ul><script type="text/html" id="querytmp">{{each shoplist as pdt}}<li class="mui-table-view-cell mui-media"><div><img src="images/{{pdt.img}}" class="img_cls"></div><br /><div class="context_cls"><div><h4>{{pdt.title}}</h4></div><div>{{pdt.area}}</div><div><span class="fontcolor">{{pdt.priceNew | round:''}}/人</span><span><del>{{pdt.priceOld | round:''}}</del></span><span class="xiaoshouliang">销售量:{{pdt.boughtCound}}</span></div></div></li>
                          {{/each}}</script></div><div id="tabbar-with-chat" class="mui-control-content"><div class="title">这是div模式选项卡中的第2个子页面,该页面展示一个消息列表</div></div><div id="tabbar-with-contact" class="mui-control-content"><div class="title">这是div模式选项卡中的第3个子页面,该页面展示一个通讯录示例.</div></div><div id="tabbar-with-map" class="mui-control-content"><div class="title">这是div模式选项卡中的第4个子页面,该页面展示一个常见的设置示例.</div></div></div></body><script src="js/mui.min.js"></script><!--/*弹窗*/--><script src="js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"></script><script src="js/artDialog6/dialog-min.js" type="text/javascript" charset="utf-8"></script><!--模板引擎:与AJAX结合应用--><script src="js/artTemplate3/template.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript" charset="utf-8">mui.init({swipeBack:true //启用右滑关闭功能
            });//http://192.168.191.1:8020/kayumuiHW/index.html?__hbt=1513661899526var shop = {url:"http://192.168.191.1:8080/shop/",init: function() {$.ajax({url:shop.url,type: "get",success: function(data) {//console.log(data.data.length);
                            $("#section").html(template("querytmp",{shoplist:data.data}));}});//为模板引擎定义辅助函数
                    template.helper("round",function(value,mark){return (mark||"")+Math.round(value);});}}/*方法调用*/shop.init();</script><script type="text/javascript" src="js/clientWith.js"></script>
    </html>

    重点代码,跨域请求:1.在web项目中的sping资源文件中加入代码

    <mvc:cors><mvc:mapping path="/**"allowed-origins="http://127.0.0.1:8020,http://192.168.191.1:8020"allowed-methods="POST,GET, OPTIONS,DELETE,PUT"allowed-headers="Content-Type,ContentType,Access-Control-Allow-Headers, Authorization, X-Requested-With"allow-credentials="true"/></mvc:cors>

    注意的是要加上http://192.168.191.1:8020(本机地址:doc命令,输入ifconfig);在app页面中跨域,并同步借用到模板引擎

  9. <!--模板引擎需导入的JavaScript--><script src="js/artTemplate3/template.js" type="text/javascript" charset="utf-8"></script><!--artDialog弹出层(弹框)需导入的JavaScript--><script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script><script src="js/artDialog6/dialog-min.js" type="text/javascript" charset="utf-8"></script><link rel="stylesheet" type="text/css" href="js/artDialog6/ui-dialog.css" />

    拓展:

    模板引擎使用案例
    <!DOCTYPE html>
    <html><head><meta charset="UTF-8"><title>artTemplate</title></head><body><div id="result"></div><!--模板引擎需导入的JavaScript--><script src="js/artTemplate3/template.js" type="text/javascript" charset="utf-8"></script><script type="text/html" id="template1">{{if isShow}}<h2>姓名:{{name}}</h2><ul>{{each hobbies as hobby index}}<li>{{index+1}} {{hobby}}</li>
                  {{/each}}</ul>
                {{/if}}</script><script type="text/javascript">var data={isShow:true,name:"Tom",hobbies:["看书","上网","运动","电影","购物"]};//用数据与模板渲染(render)出结果var html=template("template1",data);document.getElementById("result").innerHTML=html;</script></body>
    </html>
    artDialog弹出层(弹框)使用案例
    <!DOCTYPE html>
    <html><head><meta charset="UTF-8"><title>artDialog</title></head><body><button onclick="btn_dialog()">弹出框</button><button onclick="btn_loading()">加载中</button><!--artDialog弹出层(弹框)需导入的JavaScript--><script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script><script src="js/artDialog6/dialog-min.js" type="text/javascript" charset="utf-8"></script><link rel="stylesheet" type="text/css" href="js/artDialog6/ui-dialog.css" /><script type="text/javascript">function btn_dialog() {var d = dialog({title: '消息',content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',okValue: '确 定',ok: function() {var that = this;setTimeout(function() {that.title('提交中..');}, 2000);return false;},cancelValue: '取消',cancel: function() {alert('你点了取消按钮')}});d.show();}function btn_loading(){dialog({modal:true}).show();}</script></body></html>

     

  10. 其他(ajax的使用):在后台web的index.html中调用ajax(只有添加和修改可以不传数据,直接封装一个get对象的方法传过后台,但要注意的是需要转为json数据),即必须添加
    contentType: "application/json;charset=utf-8",
    data:JSON.stringify(shop.getAddShop()),
    dataType: "json"
    var shop = {url:"http://localhost:8080/shop/",init: function() {$.ajax({url:shop.url,type: "get",success: function(data) {$("#tab tr:gt(0)").remove();/*$(data.data).each(function(i,h){$("#tab").append("<tr><td>"+h.boughtCound+"</td></tr>");console.log(h.boughtCound);});*/$("#tab").append(template("querytmp",{shoplist:data.data}));}});//为模板引擎定义辅助函数template.helper("round",function(value,mark){return (mark||"")+Math.round(value);});},xiangqing: function(id){//数据需从后台遍历$.ajax({url:shop.url+id,type: "get",success: function(data) {//console.log("现价:"+data.priceNew+",图片:"+data.img+",浏览量:"+data.boughtCound);$("body").append(template("xiangqingtmp",data.data));/*弹窗*/var d = dialog({title: '店铺详情信息',content: $(".dialog"),backdropOpacity:0.3});d.showModal();}});},del: function(i) {var delflag = confirm("您真的要删除吗?");if(delflag){$.ajax({url:shop.url+i,type:"delete",success:function(){alert("删除成功");shop.init();}});}},exit: function(i){$.ajax({url:shop.url+i,type: "get",success: function(data) {//console.log("现价:"+data.priceNew+",图片:"+data.img+",浏览量:"+data.boughtCound);$("body").append(template("xiugaitpm",data.data));/*弹窗*/var d = dialog({title: '修改店铺信息',content: $("#formEmps"),backdropOpacity:0.3});d.showModal();}});},getUpdataShop: function () {return {"id": $("#xid").val(),"img": $("#ximg").val(),"title": $("#xtitle").val(),"area": $("#xarea").val(),"discountText": $("#xdiscountText").val(),"priceNew": $("#xpriceNew").val(),"priceOld": $("#xpriceOld").val(),"boughtCound": $("#xboughtCound").val()};},update: function(){$.ajax({url:shop.url,type:"put",contentType: "application/json;charset=utf-8",data:JSON.stringify(shop.getUpdataShop()),dataType: "json",success: function(data) {alert("修改成功");shop.init();}});},getAddShop: function () {return {"id": $("#id").val(),"img": $("#img").val(),"title": $("#title").val(),"area": $("#area").val(),"discountText": $("#discountText").val(),"priceNew": $("#priceNew").val(),"priceOld": $("#priceOld").val(),"boughtCound": $("#boughtCound").val()};},add: function() {$.ajax({url:shop.url,type:"post",contentType: "application/json;charset=utf-8",data:JSON.stringify(shop.getAddShop()),dataType: "json"});shop.init();}}


    手机端app访问地址http://192.168.191.1:8020/kayumuiHW/index.html?__hbt=1513661899526

    1. 手机项目生成手机app安装包步骤:
    2. 项目的
    3.  

    4.  

    5.  

       

    6.  

    7.  

    8.  

    9.  

      最后,把安装包发送下载到手机即可

       

       

       

转载于:https://www.cnblogs.com/Sunny-lby/p/8067172.html

这篇关于my大众点评作业思路实现:app+跨域+模板引擎+artDialog弹出层+ajax基本增删改查的使用...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583871

相关文章

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各