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

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)

這篇具有很好參考價值的文章主要介紹了python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

大家早好、午好、晚好吖 ? ~歡迎光臨本文章

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)

制作前后端分離圖書信息管理系統(tǒng)的思路:

  1. 前端部分

    首先,我們可以使用 VueJS 作為前端框架,并通過 Vue CLI 工具進行創(chuàng)建和管理項目。

  2. 后端部分

    后端部分我們可以采用 Python Flask 框架,這個框架是一個輕量級的Web框架,十分適合快速開發(fā)API接口。

  3. 前端和后端交互

    前后端的交互可以采用 Restful API 設計的方式進行,例如創(chuàng)建一個圖書列表接口,前端只需要發(fā)送一個 GET 請求給后端,后端通過查詢數(shù)據(jù)庫,返回 JSON 格式的數(shù)據(jù)給前端。

  4. 數(shù)據(jù)庫

    為了方便管理圖書信息,我們可以使用關系型數(shù)據(jù)庫 MySQL 存儲和管理相關數(shù)據(jù)。

  5. 部署

    可以使用 Docker 將前后端應用部署在同一個容器內(nèi),或者使用 CI/CD 工具將前后端應用分別部署在不同的服務器上。

總的來說,通過使用以上技術棧,我們就可以實現(xiàn)一個前后端分離的圖書信息管理系統(tǒng)。

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)

效果展示

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)


?? ?? ?? 更多精彩機密、教程,盡在下方,趕緊點擊了解吧~

素材、視頻教程、完整代碼、插件安裝教程我都準備好了,直接在文末名片自取就可

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)


后端部分

flask: https://flask.palletsprojects.com/en/2.1.x/

flask-sqlalchemy: https://flask-sqlalchemy.palletsprojects.com/en/2.x/

flask-cors: https://flask-cors.readthedocs.io/en/latest/

flask 快速上手

from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello_world(): # put application's code here
return 'Welcome Books!'

數(shù)據(jù)庫部分

# -*- coding: utf-8 -*-
from extension import db
class Book(db.Model):
__tablename__ = 'book'
# 完整源碼文檔:加V:pytho8987免費獲取,驗證記得備注“777
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
book_number = db.Column(db.String(255), nullable=False)
book_name = db.Column(db.String(255), nullable=False)
book_type = db.Column(db.String(255), nullable=False)
book_prize = db.Column(db.Float, nullable=False)
author = db.Column(db.String(255))
book_publisher = db.Column(db.String(255))
@staticmethod
def init_db():
rets = [
(1, '001', '活著', '小說', 39.9, '余華', '某某出版社'),
(2, '002', '三體', '科幻', 99.8, '劉慈欣', '重慶出版社')
]
for ret in rets:
book = Book()
book.id = ret[0]
book.book_number = ret[1]
book.book_name = ret[2]
book.book_type = ret[3]
book.book_prize = ret[4]
book.author = ret[5]
book.book_publisher = ret[6]
db.session.add(book)
db.session.commit()

使用之前需要 flask create 初始化一下數(shù)據(jù)

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)

接口部分

RESTful API 最佳實踐(阮一峰) : https://www.ruanyifeng.com/blog/2018/10/restful-api-best-practice
s.html

Method Views for APIs: https://flask.palletsprojects.com/en/2.1.x/views/#method-views-for-apis

from flask import Flask, request
from flask_cors import CORS
from flask.views import MethodView
from extension import db
from models import Book
app = Flask(__name__)
CORS().init_app(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///books.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
@app.cli.command()
def create():
db.drop_all()
db.create_all()
Book.init_db()
@app.route('/')
def hello_world(): # put application's code here
return 'Welcome Books!'
class BookApi(MethodView):
def get(self, book_id):
if not book_id:
books: [Book] = Book.query.all()
results = [
{
'id': book.id,
'book_name': book.book_name,
'book_type': book.book_type,
'book_prize': book.book_prize,
'book_number': book.book_number,
'book_publisher': book.book_publisher,
'author': book.author,
} for book in books
]
return {
'status': 'success',
'message': '數(shù)據(jù)查詢成功',
'results': results
}
book: Book = Book.query.get(book_id)
return {
'status': 'success',
'message': '數(shù)據(jù)查詢成功',
'result': {
'id': book.id,
'book_name': book.book_name,
'book_type': book.book_type,
'book_prize': book.book_prize,
'book_number': book.book_number,
'book_publisher': book.book_publisher,
'author': book.author,
}
}
def post(self):
form = request.json
book = Book()
完整源碼文檔:加V:pytho8987免費獲取,驗證記得備注“777
book.book_number = form.get('book_number')
book.book_name = form.get('book_name')
book.book_type = form.get('book_type')
book.book_prize = form.get('book_prize')
book.author = form.get('author')
book.book_publisher = form.get('book_publisher')
db.session.add(book)
db.session.commit()
# id, book_number, book_name, book_type, book_prize, author,
book_publisher
return {
'status': 'success',
'message': '數(shù)據(jù)添加成功'
}
完整源碼文檔:加V:pytho8987免費獲取
def delete(self, book_id):
book = Book.query.get(book_id)
db.session.delete(book)
db.session.commit()
return {
'status': 'success',
'message': '數(shù)據(jù)刪除成功'
}
def put(self, book_id):
book: Book = Book.query.get(book_id)
book.book_type = request.json.get('book_type')
book.book_name = request.json.get('book_name')
book.book_prize = request.json.get('book_prize')
book.book_number = request.json.get('book_number')
book.book_publisher = request.json.get('book_type')
book.author = request.json.get('book_type')
db.session.commit()
return {
'status': 'success',
'message': '數(shù)據(jù)修改成功'
}
book_api = BookApi.as_view('book_api')
app.add_url_rule('/books', view_func=book_api, methods=['GET', ], defaults=
{'book_id': None})
app.add_url_rule('/books', view_func=book_api, methods=['POST', ])
app.add_url_rule('/books/<int:book_id>', view_func=book_api, methods=['GET',
'PUT', 'DELETE'])

前端部分

vite: https://vitejs.cn/

vue3: https://v3.cn.vuejs.org/

Element Plus: https://element-plus.gitee.io/zh-CN/

axios: https://axios-http.com/docs/intro

項目創(chuàng)建

C:\Users\xxp\Desktop>npm init vite@latest
 Project name: ... book-fontend
 Select a framework: ? vue
 Select a variant: ? vue
Scaffolding project in C:\Users\xxp\Desktop\book-fontend...
Done. Now run:
cd book-fontend
npm install
npm run dev

項目初始化

npm install element-plus
npm install axios

初始化 element-plus

import {createApp} from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

頁面創(chuàng)建

表單數(shù)據(jù)顯示

<template>
<div style="margin: 0 auto;width: 50%;">
<h1 style="text-align: center">圖書管理系統(tǒng)</h1>
<!-- 添加圖書按鈕 -->
<el-button type="primary" @click="add_dialog_visible = true" size="small">
加圖書</el-button>
<!-- 數(shù)據(jù)表格 -->
完整源碼文檔:加V:pytho8987免費獲取,驗證記得備注“777
<el-table :data="books" style="margin: 20px auto;">
<el-table-column label="編號" prop="book_number"/>
<el-table-column label="書名" prop="book_name"/>
<el-table-column label="類型" prop="book_type"/>
<el-table-column label="價格" prop="book_prize"/>
<el-table-column label="作者" prop="author"/>
<el-table-column label="出版社" prop="book_publisher"/>
<el-table-column align="right" label="操作" width="200px">
<template #default="scope">
<el-button size="small" @click="handleEdit(scope.$index, scope.row)">
編輯
</el-button>
<el-button
size="small"
type="danger"
@click="handleDelete(scope.$index, scope.row)"
>
刪除
</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script setup>
import axios from 'axios'
import {reactive, ref, onMounted} from "vue";
import {ElMessageBox} from 'element-plus'
const books = reactive([])
const getStudents = () => {
axios.get("http://localhost:5000/books",).then(res => {
books.splice(0, books.length)
books.push(...res.data.results)
console.log('更新數(shù)據(jù)')
})
}
// 頁面渲染之后添加數(shù)據(jù)
onMounted(() => {
getStudents()
})
// 刪除數(shù)據(jù)
const handleDelete = (index, scope) => {
axios.delete(`http://localhost:5000/books/${scope.id}`).then(() => {
getStudents()
})
}
</script>

添加數(shù)據(jù)

html表單

<!-- 添加圖書頁面 -->
<el-dialog
title="添加圖書"
v-model="add_dialog_visible"
width="30%"
:before-close="handleClose"
>
<el-form
ref="ruleFormRef"
:model="book_form"
status-icon
label-width="120px"
class="demo-ruleForm"
>
<el-form-item label="編號" prop="book_number">
<el-input v-model="book_form.book_number" autocomplete="off"/>
</el-form-item>
<el-form-item label="書名" prop="book_name">
<el-input v-model="book_form.book_name" autocomplete="off"/>
</el-form-item>
<el-form-item label="類型" prop="book_type">
<el-input v-model="book_form.book_type" autocomplete="off"/>
</el-form-item>
<el-form-item label="價格" prop="book_prize">
完整源碼文檔:加V:pytho8987免費獲取,驗證記得備注“777
<el-input v-model.number="book_form.book_prize" autocomplete="off"/>
</el-form-item>
<el-form-item label="作者" prop="author">
<el-input v-model="book_form.author" autocomplete="off"/>
</el-form-item>
<el-form-item label="出版社" prop="book_publisher">
<el-input v-model="book_form.book_publisher" autocomplete="off"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(ruleFormRef)">提交</elbutton>
<el-button @click="resetForm(ruleFormRef)">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>

JavaScript

/*表單添加*/
const add_dialog_visible = ref(false)
const ruleFormRef = ref()
const book_form = reactive({
book_number: "",
book_name: "",
book_type: "",
book_prize: "",
author: "",
book_publisher: "",
id: "",
})
// 表單提交事件
const submitForm = (formEl) => {
完整源碼文檔:加V:pytho8987免費獲取,驗證記得備注“777
axios.post('http://localhost:5000/books', book_form).then(() => {
add_dialog_visible.value = false
formEl.resetFields()
getStudents()
})
}
// 重置表單
const resetForm = (formEl) => {
formEl.resetFields()
}
// 關閉彈窗前確認
const handleClose = (done) => {
ElMessageBox.confirm('確認關閉?')
.then(() => {
done();
})
.catch(() => {
});
}

尾語 ??

好了,今天的分享就差不多到這里了!

完整代碼、更多資源、疑惑解答直接點擊下方名片自取即可。

對下一篇大家想看什么,可在評論區(qū)留言哦!看到我會更新噠(? ?_?)?

喜歡就關注一下博主,或點贊收藏評論一下我的文章叭!??!

python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)

最后,宣傳一下呀~??????更多源碼、資料、素材、解答、交流皆點擊下方名片獲取呀??????文章來源地址http://www.zghlxwxcb.cn/news/detail-488374.html

到了這里,關于python使用 flask+vue 制作前后端分離圖書信息管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【項目案例】前后端分離項目 【W(wǎng)eb圖書管理系統(tǒng) 】SpringBoot + Vue + Element UI + Mysql

    【項目案例】前后端分離項目 【W(wǎng)eb圖書管理系統(tǒng) 】SpringBoot + Vue + Element UI + Mysql

    ?? 博主介紹 : 博主從事應用安全和大數(shù)據(jù)領域,有8年研發(fā)經(jīng)驗,5年面試官經(jīng)驗,Java技術專家,WEB架構師,阿里云專家博主,華為云云享專家,51CTO 專家博主 Java知識圖譜點擊鏈接: 體系化學習Java(Java面試專題) ???? 感興趣的同學可以收藏關注下 , 不然下次找不到喲

    2024年02月07日
    瀏覽(40)
  • 前后端分離項目-基于springboot+vue的圖書館管理系統(tǒng)的設計與實現(xiàn)(內(nèi)含代碼+文檔+報告)

    前后端分離項目-基于springboot+vue的圖書館管理系統(tǒng)的設計與實現(xiàn)(內(nèi)含代碼+文檔+報告)

    博主介紹:?全網(wǎng)粉絲10W+,前互聯(lián)網(wǎng)大廠軟件研發(fā)、集結(jié)碩博英豪成立工作室。專注于計算機相關專業(yè)畢業(yè)設計項目實戰(zhàn)6年之久,選擇我們就是選擇放心、選擇安心畢業(yè)? ?? 由于篇幅限制,想要獲取完整文章或者源碼,或者代做,拉到文章底部即可看到個人VX。 ?? 2023年

    2024年02月07日
    瀏覽(21)
  • FLASK+VUE--前后端分離(三)- VUE+Element-UI搭建登陸頁面且能夠正常登陸

    FLASK+VUE--前后端分離(三)- VUE+Element-UI搭建登陸頁面且能夠正常登陸

    FLASK+VUE–前后端分離(一)- Flask基礎講解之路由、視圖函數(shù)及代碼實現(xiàn) FLASK+VUE–前后端分離(二)- VUE基礎安裝及項目的簡易介紹 FLASK+VUE–前后端分離(三)- VUE+Element-UI搭建登陸頁面且能夠正常登陸 FLASK+VUE–前后端分離(四)- VUE+Element-UI簡單搭建主頁布局 FLASK+VUE–前后端

    2023年04月15日
    瀏覽(32)
  • 用【mysql,vue,node】制作一個前后端分離小項目

    用【mysql,vue,node】制作一個前后端分離小項目

    ??作者簡介:大家好我是言不及行yyds ??個人主頁:言不及行yyds的CSDN博客 ??系列專欄:【前端項目】 1.1mysql 根據(jù)基本的 mysql語句 ,創(chuàng)建一個本地mysql的數(shù)據(jù), 用于向前端頁面展示。 在這里是我創(chuàng)建的一個db.sql文件 關于怎么將該文件導入數(shù)據(jù)庫 請參考:phpstudy導入mysql文

    2024年02月07日
    瀏覽(28)
  • Python Flask Web + PyQt 前后端分離的項目—學習成績可視化分析系統(tǒng)

    Python Flask Web + PyQt 前后端分離的項目—學習成績可視化分析系統(tǒng)

    使用工具: Python,PyQt ,F(xiàn)lask ,MySQL 注:制作重點在網(wǎng)頁端,因此網(wǎng)頁端的功能更全 WEB界面展示: 系統(tǒng)登錄分為管理員,老師,學生3部分 管理員統(tǒng)一管理所有的賬號信息以及登錄信息 老師管理,添加,修改班級,學生的成績信息 學生只能查看成績信息,不能做出修改 ? ?

    2024年02月20日
    瀏覽(24)
  • 基于Java+SpringBoot+Vue前后端分離學生信息管理設計實現(xiàn)

    基于Java+SpringBoot+Vue前后端分離學生信息管理設計實現(xiàn)

    博主介紹 : ? 全網(wǎng)粉絲30W+,csdn特邀作者、博客專家、CSDN新星計劃導師、java領域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺優(yōu)質(zhì)作者、專注于Java技術領域和畢業(yè)項目實戰(zhàn) ? ?? 文末獲取源碼聯(lián)系 ?? ?????精彩專欄 推薦訂閱 ?????不然下次找不到喲 ?java項目

    2024年02月05日
    瀏覽(91)
  • 基于JAVA+Springboot+Thymeleaf前后端分離項目:校園學校圖書館座位預約系統(tǒng)設計與實現(xiàn)

    基于JAVA+Springboot+Thymeleaf前后端分離項目:校園學校圖書館座位預約系統(tǒng)設計與實現(xiàn)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學生畢業(yè)設計教育和輔導。 所有項目都配有從入門到精通的基礎知識視頻課程,學習后應對畢業(yè)設計答辯。 項目配有對應開發(fā)文檔、

    2024年02月19日
    瀏覽(26)
  • vue2 使用axios獲取服務器響應頭(前后端分離)

    1:后端通過json序列化成字符串 傳給前端 2:在program 配置跨域中進行配置 按需返回所需數(shù)據(jù)

    2024年02月07日
    瀏覽(30)
  • 【Python成長之路】基于Flask-admin庫,結(jié)合html+vue,實現(xiàn)前后端數(shù)據(jù)傳遞

    【Python成長之路】基于Flask-admin庫,結(jié)合html+vue,實現(xiàn)前后端數(shù)據(jù)傳遞

    前面已經(jīng)做了Flask-admin庫的基本介紹和幾個庫常用功能如何使用,若不了解請移步到以下博客: 1、?《【Python成長之路】基于Flask-admin庫,編寫個人工作平臺代碼詳述》 2、?《【Python成長之路】基于Flask-admin庫,編寫個人工作平臺代碼 -- 進階版》 此篇文章主要是講述: 1、結(jié)合

    2024年02月02日
    瀏覽(19)
  • 零基礎如何使用IDEA啟動前后端分離中的前端項目(Vue)?

    零基礎如何使用IDEA啟動前后端分離中的前端項目(Vue)?

    點擊File--Settings--Plugins--搜索vue.js插件進行安裝,下面的圖中我已經(jīng)安裝好了 安裝node.js 可以去官網(wǎng)下載:安裝過程就很簡單,直接下一步就行 ?測試是否安裝成功:要使用 管理員方式 打開命令行cmd ????????安裝完成之后,打開命令行工具,輸入node -v如果出現(xiàn)版本號,則說

    2024年02月11日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包