移动端架构用什么 移动端平台搭建 您所在的位置:网站首页 javascript用什么ide 移动端架构用什么 移动端平台搭建

移动端架构用什么 移动端平台搭建

#移动端架构用什么 移动端平台搭建| 来源: 网络整理| 查看: 265

前端是怎么搞app的,学习了。。。搭建开发环境不需要搭建ios和android的开发环境,只需要下载hbuilder(估计需要java环境支持),

选定ui目前推荐mui,效果不错

写事件通过js调用原生方法实现app效果

写业务逻辑

常用网址

http://dev.dcloud.net.cn/mui/ui/

http://www.html5plus.org/doc/h5p.html

 

 

HBuilder / HBuilderX - HTML/JS 代码块 - 代码封装 - 简单数据形成代码格式MUI - 移动App布局框架 - 最接近原生App操作HTML5PLUS - 调用硬件驱动 和 系统调用

Mui当中封装HTML5PLUS 喊一句就出来了

MUI页面的DOM - mdo标题栏 - mhe - 带返回的 不带返回的MUI内容主体 - mbo九宫格 - mg 轮播 - msl 图文列表 - mli底部选项卡 - mta

JS:mui.openwindow({ url:"页面.html", id:"页面.html", styles:{ top:"0px", bottom:"50px" }, extras:{}}) - mop

mui.init() - min - 加载子页面 - mins s=subpages:[{}]mui.post() - mpo - ajax 的 POST请求方式 - url,data,SCB,datatypemui.toast() - 展示自动消失提示框

document.getElementById("btn").addEventListener("tap",funcation(){

}) - dga - 绑定事件

1.手势事件 tap 点击事件 ming - 修改当前webview可监听的手势事件

2.webview 将HTML代码翻译成可以显示的webview页面 plus.webview.currentWebView(); 获取当前WebView所有对象 plus.webview.getWebViewById("webview_id_string"); 获取指定的WebView所有对象

3.mui.fire login 向 index 发送 事件触发 1.事件触发 var index = plus.webview.getWebViewById("HBuilder"); login 获取 index webview mui.fire(index,"hello",{age:123})

2.事件监听 index 页面监听事件 document.addEventListener("hello",function(eventData){ eventData.detail === {age:123} // ws.send(JSON.stringify(event.detail))); mui.toast("我是index页面,你调用了我的hello事件 ,你给我传递了"+JSON.stringify(event.detail)); })

4.storage === cookie 本地存储空间 {"key":"string/int"}

5.页面参数传递 extras extras:{name:666} 传递页面参数 login.html login.html: plus.webview.currentWebView().name; 获取当前WebView所有对象

 

代码和图片

前端代码:

百度云盘完整:

链接:https://pan.baidu.com/s/1QaSc7ZsZarQ4cBstNW2REw 提取码:fsfu

前端ui框架:

下面index.html启动口,HBuild创建项目,index.html 是入口界面,也是第一个界面,其他界面从这里点击进入

首页 0 消息 好友请求 我的 mui.init({ subpages: [{ url: 'main.html', id: 'main.html', styles: { top: "0px", bottom: "50px" }, extras: {} }] }) var ws = null; var user_info = null; mui.plusReady(function () { if(window.localStorage.getItem("user_id")){ mui.post(window.serv + '/auto_login',{ _id:window.localStorage.getItem("user_id") },function(data){ user_info = data.DATA; console.log(JSON.stringify(user_info)); document.getElementById("count").innerText = user_info.chat.count; create_ws(data.DATA._id); },'json' ); } }) function create_ws(id) { ws = new WebSocket(window.ws_serv + id); ws.onmessage = function(eventMessage) { var recv_msg = JSON.parse(eventMessage.data); // user_info[recv_msg.from_user] += 1; document.getElementById("count").innerText = parseInt(document.getElementById("count").innerText)+1; // var p = plus.audio.createPlayer(window.chat_serv + recv_msg.chat); //// mui.toast("开始播放语音消息"); // p.play(); var chat = plus.webview.getWebviewById("chat.html"); mui.fire(chat,'add_chat',recv_msg); console.log(eventMessage.data); }; ws.onclose = function() { create_ws(id); } } document.addEventListener("send_music", function(event) { var s = JSON.stringify(event.detail); ws.send(s); }); document.addEventListener("send_chat", function(event) { var s = JSON.stringify(event.detail); ws.send(s); }); document.getElementById('self').addEventListener('tap', function() { if(window.localStorage.getItem("user_id")) { mui.openWindow({ url: "user_info.html", id: "user_info.html", styles: { top: "0px", bottom: "50px" }, extras:user_info }) } else { mui.openWindow({ url: "login.html", id: "login.html", styles: { top: "0px", bottom: "50px" } }) } }) document.getElementById('home').addEventListener('tap', function() { mui.openWindow({ url: 'main.html', id: 'main.html', styles: { top: "0px", bottom: "50px" }, extras: {} }); }) document.getElementById('friend_list').addEventListener('tap',function () { mui.openWindow({ url: 'message.html', id: 'message.html', styles: { top: "0px", bottom: "50px" }, extras: user_info, createNew:true }); }) document.addEventListener("cut",function(eventMessage){ var cut = eventMessage.detail.cut; var count = parseInt(document.getElementById("count").innerText); document.getElementById("count").innerText = count - cut; }) document.getElementById('req_list').addEventListener('tap',function () { mui.openWindow({ url: 'req_list.html', id: 'req_list.html', styles: { top: "0px", bottom: "50px" }, createNew:true }); })

移动端架构用什么 移动端平台搭建_webview

点击底部栏首页,消息,好友,我的分别进入不同页面,

首页的html

移动端架构用什么 移动端平台搭建_webview_02

移动端架构用什么 移动端平台搭建_html_03

Document 首页 Home Email Chat Location Search Phone mui.init(); mui.back = function(){}; mui.plusReady(function () { mui.post(window.serv + '/content_list',{ },function(data){ //data = [{内容1},{内容2}] console.log(JSON.stringify(data)); for (var i = 0; i < data.data.length; i++) { create_content(data.data[i]); } },'json' ); }) function create_content(content){ var li = document.createElement("li"); li.className = "mui-table-view-cell mui-media"; var a = document.createElement("a"); a.onclick = function(){ mui.openWindow({ url:"player.html", id:"player.html", extras:content }); }; var img = document.createElement("img"); img.className = "mui-media-object mui-pull-left"; img.src = window.image_serv+content.cover; var div = document.createElement("div"); div.className = "mui-media-body"; div.innerText=content.title; var p = document.createElement("p"); p.className="mui-ellipsis"; p.innerText = content._id; li.appendChild(a); a.appendChild(img); a.appendChild(div); div.appendChild(p); document.getElementById("content_list").appendChild(li); }

main.html

消息的html

Document 好友列表 mui.init(); mui.back = function(){}; var Sdata = null; var index = null; mui.plusReady(function(){ Sdata = plus.webview.currentWebview(); index = plus.webview.getWebviewById("H5945F808"); mui.post(window.serv + '/friend_list',{ _id:window.localStorage.getItem("user_id") },function(data){ console.log(JSON.stringify(data)); for (var i = 0; i < data.DATA.length; i++) { create_friend(data.DATA[i]); } },'json' ); }) function create_friend(friend_info) { var span = document.createElement("span"); span.className = "mui-badge mui-badge-red"; span.innerText = Sdata.chat[friend_info.friend_id]; friend_info.self_avatar = Sdata.avatar; var li = document.createElement("li"); li.className = "mui-table-view-cell mui-media"; var a = document.createElement("a"); a.onclick = function() { span.innerText = 0; mui.fire(index,'cut',{cut:Sdata.chat[friend_info.friend_id]}) mui.openWindow({ url: "chat.html", id: "chat.html", extras: friend_info }); }; var img = document.createElement("img"); img.className = "mui-media-object mui-pull-left"; img.src = "avatar/"+friend_info.friend_avatar; var div = document.createElement("div"); div.className = "mui-media-body"; div.innerText = friend_info.friend_remark; var p = document.createElement("p"); p.className = "mui-ellipsis"; p.innerText = friend_info.friend_nick; li.appendChild(a); a.appendChild(img); a.appendChild(div); a.appendChild(span); div.appendChild(p); document.getElementById("friend_list").appendChild(li); }

点击我的,进入登陆注册:

移动端架构用什么 移动端平台搭建_webview_02

移动端架构用什么 移动端平台搭建_html_03

Document 用户注册 用户名 昵称 密码 确认密码 我是爸爸 我是妈妈 确认眼神 取消 mui.init(); document.getElementById('reg_btn').addEventListener('tap', function() { var username = document.getElementById("username").value; var nickname = document.getElementById("nickname").value; var pwd = document.getElementById("pwd").value; var repwd = document.getElementById("repwd").value; var gender_group = document.getElementsByName("gender"); var gender = null; for(var i = 0; i < gender_group.length; i++) { if(gender_group[i].checked) { gender = gender_group[i].value; } } if(pwd != repwd){ mui.toast('两次密码不一致'); return } mui.post(window.serv + '/reg',{ username : username, password : hex_md5(pwd), nickname : nickname, gender : gender },function(data){ console.log(JSON.stringify(data)); if (data.CODE == 0) { mui.toast(data.MSG); mui.back(); } },'json' ); })

reg.html

移动端架构用什么 移动端平台搭建_webview_02

移动端架构用什么 移动端平台搭建_html_03

Document 用户登陆 用户名 密码 登陆 注册 mui.init(); mui.back = function() { mui.toast('再按就给你关掉'); }; document.getElementById('reg_btn').addEventListener('tap', function() { mui.openWindow({ url: 'reg.html', id: 'reg.html' }); }) document.getElementById('login_btn').addEventListener('tap',function () { var username = document.getElementById("username").value; var pwd = document.getElementById("pwd").value; mui.post(window.serv + '/login',{ username:username, password:hex_md5(pwd) },function(data){ console.log(JSON.stringify(data)); mui.toast(data.MSG); if(data.CODE == 0){ window.localStorage.setItem("user_id",data.DATA._id); mui.openWindow({ url: 'user_info.html', id: 'user_info.html', styles:{ top:"0px", bottom:"50px" }, extras:data.DATA }); } },'json' ); })

login.html

移动端架构用什么 移动端平台搭建_html_08

移动端架构用什么 移动端平台搭建_webview_09

移动端架构用什么 移动端平台搭建_移动端架构用什么_10

 

 

 

 

后端代码,用的flask框架展示

移动端架构用什么 移动端平台搭建_移动端架构用什么_11

 

数据采集:

import json import os import requests from uuid import uuid4 from Config import COVER_PATH, MUSIC_PATH, MongoDB header={ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" } DATA = '{"ret":200,"msg":"声音播放数据","data":{"uid":0,"albumId":424529,"sort":1,"pageNum":1,"pageSize":30,"tracksAudioPlay":[{"index":30,"trackId":7713678,"trackName":"新年恰恰","trackUrl":"/ertong/424529/7713678","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":92,"src":"https://fdfs.xmcdn.com/group12/M00/3B/B2/wKgDXFWcw12y8TanAAtkIsI9320251.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":29,"trackId":7713564,"trackName":"我的快乐style","trackUrl":"/ertong/424529/7713564","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":155,"src":"https://fdfs.xmcdn.com/group8/M01/3B/D1/wKgDYFWcwlKzWOleABNA26oG9m0575.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":28,"trackId":7713768,"trackName":"鱼儿水中游","trackUrl":"/ertong/424529/7713768","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":114,"src":"https://fdfs.xmcdn.com/group11/M07/3C/12/wKgDa1WcxH-yUx0yAA4jOCnkzoo604.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":27,"trackId":7713763,"trackName":"祝你圣诞快乐","trackUrl":"/ertong/424529/7713763","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":91,"src":"https://fdfs.xmcdn.com/group13/M0A/3C/07/wKgDXVWcxJOxETOJAAtXC0jV-tQ007.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"7月前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":26,"trackId":7713762,"trackName":"祖国祖国我们爱你","trackUrl":"/ertong/424529/7713762","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":113,"src":"https://fdfs.xmcdn.com/group9/M06/3B/EA/wKgDZlWcxJSQzwcfAA4N0BoDMdY241.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":25,"trackId":7713760,"trackName":"最美的图画","trackUrl":"/ertong/424529/7713760","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":92,"src":"https://fdfs.xmcdn.com/group14/M00/3C/07/wKgDZFWcxLrzVVEcAAthUHuW9o8311.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":24,"trackId":7713757,"trackName":"愿望","trackUrl":"/ertong/424529/7713757","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":115,"src":"https://fdfs.xmcdn.com/group10/M05/3B/C0/wKgDaVWcxJGzJ7uSAA47_grnQu0333.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":23,"trackId":7713756,"trackName":"异想天开","trackUrl":"/ertong/424529/7713756","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":242,"src":"https://fdfs.xmcdn.com/group13/M04/3C/13/wKgDXlWcxCujLknpAB361yR0knM330.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":22,"trackId":7713682,"trackName":"雪宝宝","trackUrl":"/ertong/424529/7713682","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":80,"src":"https://fdfs.xmcdn.com/group12/M00/3B/B3/wKgDXFWcw3rzzAXUAAn2_rd_TSs416.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":21,"trackId":7713681,"trackName":"洗澡歌","trackUrl":"/ertong/424529/7713681","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":103,"src":"https://fdfs.xmcdn.com/group16/M04/3B/F0/wKgDalWcwovDamwPAAzWCE1KPhg634.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":20,"trackId":7713679,"trackName":"校园的早晨","trackUrl":"/ertong/424529/7713679","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":170,"src":"https://fdfs.xmcdn.com/group7/M0A/3C/83/wKgDWlWcw4ayhRYzABUJGT5KiYk025.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":19,"trackId":7713676,"trackName":"摇篮曲","trackUrl":"/ertong/424529/7713676","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":141,"src":"https://fdfs.xmcdn.com/group13/M00/3C/11/wKgDXlWcw4bg7pJVABFuZE2it5M023.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":18,"trackId":7713675,"trackName":"幸福的一家","trackUrl":"/ertong/424529/7713675","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":98,"src":"https://fdfs.xmcdn.com/group12/M00/3B/BA/wKgDW1Wcw3mzthSOAAwwJKKstIo183.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":17,"trackId":7713673,"trackName":"小马车","trackUrl":"/ertong/424529/7713673","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":71,"src":"https://fdfs.xmcdn.com/group11/M06/3C/14/wKgDbVWcwtOgeKw_AAjTUUqlrKg930.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":16,"trackId":7713670,"trackName":"小蚂蚁","trackUrl":"/ertong/424529/7713670","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":62,"src":"https://fdfs.xmcdn.com/group11/M06/3C/14/wKgDbVWcwtXQ0dlHAAe1eRxnsE0477.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":15,"trackId":7713665,"trackName":"小红帽","trackUrl":"/ertong/424529/7713665","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":110,"src":"https://fdfs.xmcdn.com/group15/M0B/3C/33/wKgDZVWcwv2it2_0AA2pv_mYNFU658.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":14,"trackId":7713664,"trackName":"小玉米","trackUrl":"/ertong/424529/7713664","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":98,"src":"https://fdfs.xmcdn.com/group7/M0A/3C/7E/wKgDX1Wcw13z8c8YAAwzfb-5DTc863.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":13,"trackId":7713663,"trackName":"小猪猪","trackUrl":"/ertong/424529/7713663","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":201,"src":"https://fdfs.xmcdn.com/group7/M0A/3C/7F/wKgDX1Wcw2_AiWYsABjbdVPaqLY570.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":12,"trackId":7713662,"trackName":"小猪小猪肥嘟嘟","trackUrl":"/ertong/424529/7713662","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":79,"src":"https://fdfs.xmcdn.com/group7/M0A/3C/83/wKgDWlWcw2yBPuHdAAnSUqLNF0g598.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":11,"trackId":7713660,"trackName":"小毛驴","trackUrl":"/ertong/424529/7713660","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":91,"src":"https://fdfs.xmcdn.com/group12/M04/3B/B1/wKgDXFWcwvKzSpMUAAthUBlZLzc281.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":10,"trackId":7713656,"trackName":"小小发型师","trackUrl":"/ertong/424529/7713656","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":77,"src":"https://fdfs.xmcdn.com/group14/M06/3C/1C/wKgDY1Wcw0_AUxG7AAmWOfM875o604.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":9,"trackId":7713655,"trackName":"小宝贝","trackUrl":"/ertong/424529/7713655","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":145,"src":"https://fdfs.xmcdn.com/group15/M0B/3C/32/wKgDaFWcwtaisdS-ABIEA9keU18436.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":8,"trackId":7713654,"trackName":"小孩应把卫生讲","trackUrl":"/ertong/424529/7713654","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":95,"src":"https://fdfs.xmcdn.com/group15/M0B/3C/33/wKgDZVWcwvaT_e8oAAvfdhfXJNQ861.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":7,"trackId":7713653,"trackName":"小喇叭","trackUrl":"/ertong/424529/7713653","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":85,"src":"https://fdfs.xmcdn.com/group12/M03/3B/B1/wKgDXFWcwtzgy3BgAAqLJj1ijho574.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":6,"trackId":7713652,"trackName":"小可爱","trackUrl":"/ertong/424529/7713652","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":214,"src":"https://fdfs.xmcdn.com/group12/M03/3B/B8/wKgDW1WcwvHzL1FEABqFFMJa4L4742.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":5,"trackId":7713649,"trackName":"学走路","trackUrl":"/ertong/424529/7713649","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":73,"src":"https://fdfs.xmcdn.com/group12/M00/3B/BA/wKgDW1Wcw4zBISExAAkms7-Of3Q290.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":4,"trackId":7713648,"trackName":"学唱数字歌","trackUrl":"/ertong/424529/7713648","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":113,"src":"https://fdfs.xmcdn.com/group12/M00/3B/B2/wKgDXFWcw2mgNQIdAA4EE3MzTKU976.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":3,"trackId":7713647,"trackName":"学习雷锋好榜样","trackUrl":"/ertong/424529/7713647","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":68,"src":"https://fdfs.xmcdn.com/group12/M00/3B/BA/wKgDW1Wcw4fQ7JWWAAh7UKT5m7c703.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":2,"trackId":7713644,"trackName":"一只哈巴狗","trackUrl":"/ertong/424529/7713644","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":86,"src":"https://fdfs.xmcdn.com/group9/M08/3B/CA/wKgDYlWcw5HTULbSAAq9BqdgRXQ509.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true},{"index":1,"trackId":7713643,"trackName":"一双小小手","trackUrl":"/ertong/424529/7713643","trackCoverPath":"//imagev2.xmcdn.com/group9/M04/3B/E1/wKgDZlWcvRKwSOIMAAD3201gPxc590.jpg","albumId":424529,"albumName":"【一千零一夜】经典儿歌","albumUrl":"/ertong/424529/","anchorId":9216785,"canPlay":true,"isBaiduMusic":false,"isPaid":false,"duration":62,"src":"https://fdfs.xmcdn.com/group13/M00/3C/12/wKgDXlWcw5GzJ1NgAAfMZ7UShYY633.m4a","hasBuy":true,"albumIsSample":false,"sampleDuration":0,"updateTime":"2年前","createTime":"4年前","isLike":false,"isCopyright":true,"firstPlayStatus":true}],"hasMore":true}}' data = json.loads(DATA) audio_list = data["data"]["tracksAudioPlay"] res=requests.get("https://www.ximalaya.com/ertong/26060202/",headers=header) content_list = [] for content_info in audio_list: content = { "title":content_info.get("trackName"), "zhuanji":content_info.get("albumName"), "cover":"", "music":"", } file_name = uuid4() cover_res = requests.get("http:"+content_info.get("trackCoverPath")) cover_file_name = f"{file_name}.jpg" cover_file_path = os.path.join(COVER_PATH,cover_file_name) with open(cover_file_path,"wb") as fc : fc.write(cover_res.content) music_res = requests.get(content_info.get("src")) music_file_name = f"{file_name}.mp3" music_file_path = os.path.join(MUSIC_PATH, music_file_name) with open(music_file_path, "wb") as fm: fm.write(music_res.content) # MongoDB 很快 - json存储 - 不用原生sql语句 - 数据存储方便 # 数据后期 非常方便 - 用户画像(用户的操作日志) == 钱 content["cover"] = cover_file_name content["music"] = music_file_name content_list.append(content) MongoDB.Content.insert_many(content_list)

pachong

from flask import Flask from Serv.Content import content from Serv.Users import user app = Flask(__name__) app.debug = True app.register_blueprint(content) app.register_blueprint(user) if __name__ == '__main__': app.run("0.0.0.0",9527)

app.py

MUSIC_PATH="Music" COVER_PATH="Cover" from pymongo import MongoClient MC = MongoClient("localhost",27017) MongoDB =MC["ang"] RET = { "CODE":0, "MSG":"", "DATA":{} }

Config

import os from flask import Blueprint,jsonify,send_file from Config import RET,MongoDB,COVER_PATH,MUSIC_PATH content = Blueprint('content',__name__) @content.route("/content_list",methods=["post"]) def content_list(): con_list = list(MongoDB.Content.find({})) for index,cont in enumerate(con_list): con_list[index]["_id"] = str(cont.get("_id")) RET["CODE"] = 0 RET["MSG"] = "获取内容资源列表" RET["data"]=con_list return jsonify(RET) @content.route("/get_cover/",methods=["get"]) def get_cover(filename): file_path = os.path.join(COVER_PATH,filename) return send_file(file_path) @content.route("/get_music/",methods=["get"]) def get_music(filename): file_path = os.path.join(MUSIC_PATH,filename) return send_file(file_path)

Content

from flask import Blueprint, request, jsonify from Config import MongoDB, RET user = Blueprint("user",__name__) @user.route("/reg",methods=["post"]) def reg(): user_info = request.form.to_dict() user_info["avatar"] = "baba.jpg" if user_info.get("gender")=="2" else "mama.jpg" user_info["bind_toys"]=[] user_info["friend_list"]=[] MongoDB.Users.insert_one(user_info) RET["CODE"] = 0 RET['MSG'] = "注册成功" RET["DATA"]={} return jsonify(RET) @user.route("/login",methods=["post"]) def login(): user_dict = request.form.to_dict() user_info=MongoDB.Users.find_one(user_dict,{"password":0}) # ***** user_info["_id"]=str(user_info.get("_id")) RET["CODE"] = 0 RET["MSG"] = 'SUCCESS' RET["DATA"] = user_info return jsonify(RET)

Users

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有