使用vue3,vite,less,flask,python从零开始学习硅谷外卖(11-15集)

严正声明!
重要的事情说一遍,本文章仅供分享,文章和代码都是开源的,严禁以此牟利,严禁侵犯尚硅谷原作视频的任何权益,我知道学习编程的人各种各样的心思都有,但这不是你对开源社区侵权的理由!
第十一集:这是一个普通的抽离组件的思想,但是现在插槽的用法有所改变了,要在template里加v-slot了,这个稍微改一下就好了。
第十二集:这个swiper组件改版以后小圆点不见了,这个不必纠结,以后有空了可以研究源码或者自己写一个,这个不是什么大问题。
第十三集:这里也是拆分组件,有个需要注意的是图片(star)的路径要改一下,…改成.,因为目录改变了。
第十四集:好家伙,这还要学monggodb吗,那也就算了,可是文档不清不楚的,还是直接用我熟悉的python框架flask来,这里可以看到数据都是在shops.json里,我们来看一下它的结构,把相同的结构折起来。
在这里插入图片描述
在这里插入图片描述

可以看到,这是一个数组,数组里的每个对象的内容里,包含着我们想请求的数据,我们当然可以使用mongodb,但这样一来可能版本号就对不上了,我们直接使用最新的flask,关于flask的基本使用看我另一篇博客:https://blog.csdn.net/returnadsss/article/details/128857080?spm=1001.2014.3001.5502,好家伙,这个写后台的东西篇幅不小呢,看shops.json里面的数据量并不小,我们只能进行批量处理。我们这里不区分query和params参数,因为这个参数vue里面提的多,用node好区分,flask稍显麻烦,而我们的重点是前端,这里大致过一下接口的编写就行了。我们在项目下新建一个python文件夹,python的使用要安装python,然后安装pip,pipinstall flask即可,把shops.json和接口文档放进去。第1个接口:使用经纬度获得一个包含经纬度和地址的json数据。先把环境调通:
在这里插入图片描述

我们再来编写接口:好久没写python了,有很多语法忘记了,不过思路对,百度一下,print一下就可以调试解决了,除非复杂逻辑,不然一般我不用debug.
在这里插入图片描述

然后我们往下写
在这里插入图片描述

可以看到写的差不多了,就是这个city值在json文件里没有,我们可以用正则匹配,匹配“省”后面到“市”前面的子塞进来。
稍微看了一下,因为我们的json文件里情况比较简单,所以我也只做了一个简单版的正则匹配,默认非贪婪模式,可以防止“浙江省宁波市余姚市”这种奇怪的地名,将就一下,不花时间深究了。
经过一番折腾,花里胡哨,用python写成的接口完成了,实际就是一个简易服务器在后台返回数据。。把代码贴出来分享一下。注意这里只判断了纬度,经度可以加and判断,不过就这个shops.json的数据来看没必要。

from flask import Flask,jsonify
from flask import request
from flask import abort,redirect
import json
import re
app=Flask(__name__)
app.config['JSON_AS_ASCII'] = False
@app.route('/position/<geohash>')
def getGeoHash(geohash):
    latitude=geohash.split(",")[0]
    longitude=geohash.split(",")[1]
    copy={}
    with open('shops.json','r',encoding='utf-8') as f:
        a = f.read()
        if a.startswith(u'\ufeff'):
            a = a.encode('utf8')[3:].decode('utf8')
        shops = json.loads(a)
        for shop in shops:
            if(shop['latitude']==float(latitude)):
                copy=shop
        print(type(copy))
    select_shop={
      "code": copy['status'],
      "data": {
        "address": copy['address'],
        "city": match_city(copy["address"]),
        "geohash": geohash,
        "latitude": latitude,
        "longitude": longitude,
        "name": copy["name"]
      }
    }
    print(copy['address'],type(copy['address']))
    return jsonify(select_shop)

def match_city(city):
    if(city.find("省"))==-1:
        m=re.match('(.+\u5e02).+',city)
    else:
        m=re.match('[\u4e00-\u9fa5]*?\u7701+?(.+\u5e02).+',city)
    return m.group(1)

        
@app.route('/hello')
def hello_world():
    return 'Hello,World'

if __name__ == '__main__':
   app.run(port=int("3000"))

用postman测一下,返回的数据符合要求,写一个接口就要老命了,后面9个再单独写一篇博客吧。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本季课程把开发知识拆解到项目里,让你在项目情境里学知识。这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。平时不明白的知识点,放在项目里去理解就恍然大悟了。  一、融汇贯通本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用Python 的Django REST Framework框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。 二、贴近实战本课程为学生信息管理系统课程:Vue3 + Vite + ElementPlus + Django REST Framework项目实战 本季课程主学生信息管理系统V5.0,内容包含:Django REST framework安装和项目初始化、数据的序列化、ViewSet视图集、DefaultRouter路由类、django-filter实现过滤、rest framework实现查找、rest framework实现分页、npm的使用使用Vite构建vue3项目、Package.json解析、ElementPlus安装和应用、vue-router实现路由、使用Vuex的store对象、后台管理系统主界面的布局、axios组件的安装和请求、axios请求的模块化、请求拦截器和响应拦截器、使用el-select实现联级下拉、使用cascader实现联级选择、vue表单的验证、实现学生信息的添加、修改和删除、实现文件的上传等等功能 本案例完整的演示了项目实现过程,虽然不复杂,但涉及的内容非常多,特别是前后端交互的时候,有诸多的坑等着你去踩,好在王老师全程代码呈现,带着大家一起填坑,大大提高学习效率的同时,也培养了大家良好的代码习惯,希望大家一起跟着王进老师学习Python开发。三、后续课程预告:Vue和Django REST Framework实现JWT登录认证 
Vue3和Vite都是现代化的前端开发工具。Vue3是Vue.js的最新版本,提供了更好的性能和更多的功能。而Vite是一个基于ES模块的开发服务器,它可以在开发过程中实现快速的冷启动和热模块替换。 在Vue3项目中使用Less进行样式处理是非常常见的需求。使用Less可以简化CSS的书写,并且具有方便的变量和混合功能。如果你想在Vue3项目中使用Less,你需要进行以下步骤: 1. 首先,你需要安装相关的插件。你可以使用以下命令来安装Less和Less Loader插件: ``` npm install less less-loader ``` 2. 安装完成后,在你的项目配置文件(一般为vite.config.js)中进行相应的配置。具体的配置方式如下: ``` import { defineConfig } from 'vite' export default defineConfig({ css: { preprocessorOptions: { less: { javascriptEnabled: true } } } }) ``` 3. 现在,你可以在Vue组件的样式中使用Less了。在你的组件中,使用`<style lang="less">`标签,并编写你的Less样式代码即可。 综上所述,以上是在Vue3项目中使用Vite和Less的基本步骤。你需要安装相关的插件,并在项目配置文件中进行相应的配置,然后就可以在Vue组件中使用Less进行样式处理了。希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用vue + less 实现简单换肤功能的示例](https://download.csdn.net/download/weixin_38660108/12763391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [在vite+vue3中使用less](https://blog.csdn.net/m0_69892739/article/details/131284015)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

returnadsss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值