国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue3 Flask 漸進(jìn)式入門筆記

這篇具有很好參考價(jià)值的文章主要介紹了Vue3 Flask 漸進(jìn)式入門筆記。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

以下均在Windows 10環(huán)境下實(shí)現(xiàn)。

安裝Vue3

安裝node.js的過程略過。
1、在cmd命令行中執(zhí)行以下命令:

>npm install @vue/cli -g

2、查看vue版本

>vue -V
@vue/cli 5.0.8

注意,如果電腦中以前有vue2版本,則需要卸載后重啟電腦再重新安裝,否則有可能安裝失敗。

創(chuàng)建Vue3項(xiàng)目(參照官方文檔使用vite)

1、執(zhí)行以下命令以創(chuàng)建項(xiàng)目

>npm init vue@latest

第一步需要填寫項(xiàng)目名稱;后面的除router建議選yes外,其他建議全部選No。
2、安裝插件依賴,并啟動(dòng)項(xiàng)目

>cd [projectName]
>npm install
>npm run dev

修改App.vue(改為setup語(yǔ)法糖的方式),直接在App.vue中實(shí)現(xiàn)計(jì)數(shù)器

<template>
 <h1>{{ msg }}</h1>
 <button @click="add">+</button>
 <button @click="sub">-</button>
</template>

<script setup>
  import {ref} from 'vue'
  const msg=ref(0)
  function add(){
    msg.value++
  }
  function sub(){
    msg.value--
  }
</script>

使用組件的方式實(shí)現(xiàn)上述計(jì)數(shù)器功能

1、 在components文件夾下創(chuàng)建Counter.vue,把上述App.vue中的代碼剪切過來(lái)。
2、 把App.vue中的代碼改為

<template>
  <Counter/>
</template>

<script setup>
  import Counter from './components/Counter.vue'
</script>

上述兩個(gè)vue組件中,App.vue相當(dāng)于父組件,Counter.vue相當(dāng)于子組件,從功能上看與第3步中的計(jì)數(shù)器功能相同。

綁定屬性 v-bind

將上述計(jì)數(shù)器中顯示數(shù)字的h1標(biāo)簽加上動(dòng)態(tài)的title屬性和class屬性。title屬性值等于msg變量的值;如果msg值小于0則將class屬性值設(shè)為red,否則將class屬性值設(shè)為green(red和green為自定義的css樣式)

<template>
  <h1 v-bind:title="tooltip" v-bind:class="msg >= 0 ? 'green' : 'red'">
    {{ msg }}
  </h1>
  <button @click="add">+</button>
  <button @click="sub">-</button>
</template>
   
<script setup>
	import { ref } from "vue";
	const msg = ref(0);
	const tooltip = ref("");
	function add() {
	  msg.value++;
	  tooltip.value = msg.value;
	}
	function sub() {
	  msg.value--;
	  tooltip.value = msg.value;
	}
</script>
   
<style scoped>
	.green {
	  color: green;
	}
	.red {
	  color: orangered;
	}
</style>

使用Element-Plus對(duì)計(jì)數(shù)器進(jìn)行修飾

1、安裝element-plus
先停止項(xiàng)目,在項(xiàng)目目錄中執(zhí)行以下命令

>npm install element-plus --save

2、配置main.js文件
在main.js中添加以下代碼:

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
app.use(ElementPlus)

3、修改Counter.vue

<template>
    <div>
        <el-text
        v-bind:type="msg >= 0 ? 'success' : 'danger'"
        style="font-size: 2rem"
        >
        {{ msg }}
        </el-text>
    </div>
    
    <el-button @click="add" type="success">1</el-button>
    <el-button @click="sub" type="danger">1</el-button>
</template>
   
<script setup>
    import { ref } from "vue";
    const msg = ref(0);
    function add() {
    msg.value++;
    }
    function sub() {
    msg.value--;
    }
</script>

條件渲染 v-if

<template>
    <div>
        <el-text v-bind:title="msg" v-if="msg>=0" type="success" style="font-size: 2rem">{{ msg }}</el-text>
        <el-text v-bind:title="msg" v-else type="danger"  style="font-size: 2rem">{{ msg }}</el-text>
    </div>
    
    <el-button @click="add" type="success">1</el-button>
    <el-button @click="sub" type="danger">1</el-button>
</template>
   
<script setup>
    import { ref } from "vue";
    const msg = ref(0);
    function add() {
    msg.value++;
    }
    function sub() {
    msg.value--;
    }
</script>

列表渲染 v-for

借助element-plus中的描述組件el-descriptions,展示一組數(shù)據(jù)

<template>
    <el-row v-for="item in userdata" :key="item.id">
      <el-col :span="24">
        <el-descriptions
          class="margin-top"
          :column="2"
          size="large"
          border
          style="margin: 0.5rem; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2)"
        >
          <el-descriptions-item>
            <template #label>
              <div class="cell-item">編號(hào)</div>
            </template>
            {{ item.id }}
          </el-descriptions-item>

          <el-descriptions-item>
            <template #label>
              <div class="cell-item">姓名</div>
            </template>
            {{ item.un }}
          </el-descriptions-item>

          <el-descriptions-item>
            <template #label>
              <div class="cell-item">性別</div>
            </template>
            {{ item.gender }}
          </el-descriptions-item>

          <el-descriptions-item>
            <template #label>
              <div class="cell-item">年齡</div>
            </template>
            {{ item.age }}
          </el-descriptions-item>

          <el-descriptions-item>
            <template #label>
              <div class="cell-item">住址</div>
            </template>
            {{ item.addr }}
          </el-descriptions-item>
        </el-descriptions>
      </el-col>
    </el-row>
</template>
   
<script setup>
import { ref } from "vue";
const userdata = ref([
  {id: 1, un: "張三", gender: "男", age: "35", addr: "貴州省貴陽(yáng)市南明區(qū)寶山路"},
  {id: 2, un: "李四", gender: "女", age: "32", addr: "貴州省興義市桔山大道" },
]);
</script>

利用axios獲取數(shù)據(jù)

1、安裝axios

>npm install axios --save

2、配置main.js

import axios from 'axios'
axios.defaults.withCredentials = true  //允許跨域
axios.defaults.baseURL = 'http://jsonplaceholder.typicode.com'  //免費(fèi)api,獲取100條數(shù)據(jù)

3、在組件中使用axios獲取數(shù)據(jù)

<template>
  <el-row v-for="item in userdata" :key="item.id">
    <el-col :span="24">
      <el-descriptions
        class="margin-top"
        :column="1"
        size="large"
        border
        style="margin: 0.5rem; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2)"
      >
        <el-descriptions-item>
          <template #label>
            <div class="cell-item">編號(hào)</div>
          </template>
          {{ item.id }}
        </el-descriptions-item>

        <el-descriptions-item>
          <template #label>
            <div class="cell-item">標(biāo)題</div>
          </template>
          {{ item.title }}
        </el-descriptions-item>

        <el-descriptions-item>
          <template #label>
            <div class="cell-item">內(nèi)容</div>
          </template>
          {{ item.body }}
        </el-descriptions-item>

      </el-descriptions>
    </el-col>
  </el-row>
</template>

<script setup>
import { ref, onMounted } from "vue";
import axios from 'axios';
const userdata = ref([ {}]);
onMounted(() => {
    axios.get("/posts").then((rs)=>{
        userdata.value=rs.data
    })
})
</script>

安裝Flask服務(wù)環(huán)境

pip install flask
pip install pymysql
pip install flask-cors

創(chuàng)建Flask應(yīng)用

任意位置創(chuàng)建app.py文件,代碼如下:

from flask import Flask 
import pymysql
from flask_cors import CORS

app = Flask(__name__) 
CORS(app, supports_credentials=True)  #允許跨域
@app.route("/getdatalist") 
def hello_world(): 
    db = pymysql.connect(
        host="localhost", 
        port=3306,
        user='root',    
        password='root',     
        charset='utf8' ,
        database='temp',
        cursorclass=pymysql.cursors.DictCursor  #結(jié)果類型為字典型 
    ) #連接數(shù)據(jù)庫(kù)

    cursor = db.cursor() #創(chuàng)建游標(biāo)對(duì)象
    sql = 'select title,author,posttime from news order by posttime desc' #sql語(yǔ)句
    cursor.execute(sql)  #執(zhí)行sql語(yǔ)句
    all = cursor.fetchall() #獲取全部數(shù)據(jù)
    cursor.close()  
    db.close()  #關(guān)閉數(shù)據(jù)庫(kù)的連接
    return (all)

執(zhí)行flask run,以啟動(dòng)后端服務(wù),ur默認(rèn)l為http://127.0.0.1:5000

前端Vue3從后端Flask服務(wù)中獲取數(shù)據(jù)

main.js

import axios from 'axios'
axios.defaults.withCredentials = true
axios.defaults.baseURL = 'http://127.0.0.1:5000'

App.vue

<template>
  <News/>
</template>

<script setup>
  import News from './components/News.vue'
</script>

News.vue文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-491797.html

<template>
     <el-card class="box-card">
    <template #header>
      <div class="card-header">
        <span>國(guó)內(nèi)新聞</span>
      </div>
    </template>
    <p v-for="(item,index) in rsdata" :key="index" class="text item">{{ item.title }}</p>
  </el-card>
</template>

<script setup>
import { ref, onMounted } from "vue";
import axios from 'axios';
const rsdata = ref([ {}]);
onMounted(() => {
    axios.get("/getdatalist").then((rs)=>{
        rsdata.value=rs.data
    })
})
</script>

到了這里,關(guān)于Vue3 Flask 漸進(jìn)式入門筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity教程||Unity 漸進(jìn)式光照貼圖烘焙詳解

    隨著各大計(jì)算平臺(tái)的算力穩(wěn)步增長(zhǎng),特別是GPU技術(shù)的不斷進(jìn)化,原先可望而不可及的技術(shù)比如實(shí)時(shí)光線追蹤技術(shù)開始逐步走入玩家的視野。一些先鋒廠商甚至已經(jīng)超出Demo的范疇,開始正式推出支持實(shí)時(shí)光追的游戲。 不過目前的實(shí)時(shí)光追技術(shù)還只能在配備了最新Nvidia RTX 20系列

    2024年02月08日
    瀏覽(43)
  • 【GitOps系列】如何實(shí)施自動(dòng)化漸進(jìn)式交付?

    【GitOps系列】如何實(shí)施自動(dòng)化漸進(jìn)式交付?

    前言 在實(shí)施金絲雀發(fā)布的過程中,我們通過 Argo Rollout 的金絲雀策略將發(fā)布過程分成了 3 個(gè)階段,每個(gè)階段金絲雀的流量比例都不同,經(jīng)過一段時(shí)間之后,金絲雀環(huán)境變成了新的生產(chǎn)環(huán)境。實(shí)際上,這也是一種漸進(jìn)式的交付方式,它通過延長(zhǎng)發(fā)布時(shí)間來(lái)保護(hù)生產(chǎn)環(huán)境,降低了

    2024年02月14日
    瀏覽(27)
  • 漸進(jìn)式編程之旅:探尋PHP函數(shù)的奇妙世界

    漸進(jìn)式編程之旅:探尋PHP函數(shù)的奇妙世界

    目錄 前言 一、函數(shù)的定義和調(diào)用 1.1?初識(shí)函數(shù) 1.1.1?函數(shù)分類 1.1.2 自定義函數(shù) 1.1.3?return 1.2 參數(shù)設(shè)置 1.2.1 無(wú)參函數(shù) 1.2.2?按值傳遞參數(shù) 1.2.3?引用傳參 1.2.4?設(shè)置參數(shù)默認(rèn)值 1.2.5?指定參數(shù)類型(弱) 1.3 變量的作用域 1.3.1 變量分類 1.3.2?全局變量的使用 1.3.3?global關(guān)鍵

    2024年02月08日
    瀏覽(21)
  • 漸進(jìn)式web全棧:blazor web app

    漸進(jìn)式web全棧:blazor web app

    本文要說(shuō)的這種開發(fā)模式,這種模式并不是只有blazor支持,js中有一樣的方案next.js nuxt.js;blazor還有很多其它內(nèi)容,本文近關(guān)注漸進(jìn)式開發(fā)模式。 是的,前后端是主流,不過以下情況也許前后端分離并不是最好的選擇: 小公司,人員不多,利潤(rùn)不高,創(chuàng)業(yè)階段能省則省 個(gè)人

    2024年02月05日
    瀏覽(17)
  • 2023-06-17:說(shuō)一說(shuō)redis中漸進(jìn)式rehash?

    2023-06-17:說(shuō)一說(shuō)redis中漸進(jìn)式rehash?

    2023-06-17:說(shuō)一說(shuō)redis中漸進(jìn)式rehash? 答案2023-06-17: 在Redis中,如果哈希表的數(shù)組一直保持不變,就會(huì)增加哈希沖突的可能性,從而降低檢索效率。為了解決這個(gè)問題,Redis會(huì)對(duì)數(shù)組進(jìn)行擴(kuò)容,通常是將數(shù)組大小擴(kuò)大為原來(lái)的兩倍。然而,這個(gè)擴(kuò)容過程會(huì)引起元素在哈希桶中的

    2024年02月09日
    瀏覽(27)
  • SSE實(shí)現(xiàn)消息實(shí)時(shí)推送,前端漸進(jìn)式學(xué)習(xí)、實(shí)踐,真香

    SSE(Server Sent Event),直譯為服務(wù)器發(fā)送事件,顧名思義,也就是客戶端可以獲取到服務(wù)器發(fā)送的事件。我們常見的 http 交互方式是客戶端發(fā)起請(qǐng)求,服務(wù)端響應(yīng),然后一次請(qǐng)求完畢;但是在 sse 的場(chǎng)景下,客戶端發(fā)起請(qǐng)求,連接一直保持,服務(wù)端有數(shù)據(jù)就可以返回?cái)?shù)據(jù)給客戶端

    2024年02月21日
    瀏覽(20)
  • redis到底是怎么樣進(jìn)行漸進(jìn)式Rehash的

    redis到底是怎么樣進(jìn)行漸進(jìn)式Rehash的

    Redis 是一個(gè)開源(BSD許可)的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件。那么redis的底層是如何來(lái)存儲(chǔ)數(shù)據(jù)的呢? 一、redis如何在存儲(chǔ)大量的key時(shí)候,查詢速度還能接近O(1)呢? 查詢速度接近O(1)的數(shù)據(jù)結(jié)構(gòu)通常讓我們想到的就是HashMap結(jié)構(gòu),那下面

    2024年02月09日
    瀏覽(22)
  • 【達(dá)摩院OpenVI】視頻目標(biāo)漸進(jìn)式Transformer跟蹤器ProContEXT

    論文鏈接:[arxiv] 代碼應(yīng)用: 開源代碼:[github code] 開源應(yīng)用:[modelscope] 視頻目標(biāo)跟蹤(Video Object Tracking, VOT)任務(wù)以一段視頻和第一幀中待跟蹤目標(biāo)的位置信息(矩形框)作為輸入,在后續(xù)視頻幀中預(yù)測(cè)該跟蹤目標(biāo)的精確位置。該任務(wù)對(duì)跟蹤目標(biāo)的類別沒有限制,目的在于

    2023年04月20日
    瀏覽(20)
  • Redis(三)存儲(chǔ)原理與數(shù)據(jù)模型(hash沖突、漸進(jìn)式rehash)

    Redis(三)存儲(chǔ)原理與數(shù)據(jù)模型(hash沖突、漸進(jìn)式rehash)

    Redis(一)原理及基本命令(柔性數(shù)組) Redis(二)網(wǎng)絡(luò)協(xié)議和異步方式(樂觀鎖悲觀鎖) Redis(三)存儲(chǔ)原理與數(shù)據(jù)模型(hash沖突、漸進(jìn)式rehash) Redis跳表 Redis是key-value的結(jié)構(gòu),其中value包含:字典,雙向鏈表,壓縮列表,跳表,整數(shù)數(shù)組,動(dòng)態(tài)字符串。 其中redis中各valu

    2024年02月16日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包