当前位置:   article > 正文

flask前后端项目--实例-前端部分:-5-vue-Element Plus-t添加数据_flask+vue前后端项目

flask+vue前后端项目

在前端添加数据信息

这个是一系列的内容,本章内容重点关注页面添加数据的过程,其他功能未调测

1.需要在vue-plus中找到dialog组件


2.在ui界面上添加数据--实际代码

app.vue的数据

  1. <script setup>
  2. import axios from "axios";
  3. import {reactive,ref,onMounted} from "vue";
  4. import {ElMessageBox}from 'element-plus'
  5. const books=reactive([])
  6. //请求后端数据,像后端请求数据
  7. const getStudent=()=>{
  8. axios.get("http://127.0.0.1:5000/books",).then(
  9. res=>{
  10. //删除旧的数据
  11. books.splice(0,books.length)
  12. //解压新的数据并且添加
  13. books.push(...res.data.results)
  14. console.log("更新数据")
  15. }
  16. )
  17. }
  18. //在页面上删除数据
  19. const handleDelete=(index,scope)=>{
  20. console.log(index,scope)
  21. axios.delete("http://127.0.0.1:5000/books/${scope.id}").then(
  22. ()=>{getStudent()}
  23. )
  24. }
  25. //页面加载完毕后再获取后台数据,生命周期的一个钩子函数
  26. onMounted(()=>{
  27. getStudent()
  28. })
  29. //表单添加
  30. const add_dialog_visible=ref(false)
  31. const ruleFormRef=ref()
  32. const book_form=reactive({
  33. book_number:"",
  34. book_name:"",
  35. book_type:"",
  36. book_price:"",
  37. author:"",
  38. book_publisher:"",
  39. id:"",})
  40. //表单提交事项
  41. const submitForm=(formEl)=>{
  42. axios.post("http://127.0.0.1:5000/books",book_form).then(()=>{
  43. add_dialog_visible.value=false
  44. formEl.resetFields()
  45. getStudents()
  46. }
  47. )
  48. }
  49. //重置表单
  50. const resetFrom=(formEl)=>{
  51. formEl.resetFields()
  52. getStudents()
  53. }
  54. //关闭弹窗确认
  55. const handleClose=(done)=> {
  56. ElMessageBox.confirm("确认关闭")
  57. .then(() => {
  58. done();
  59. })
  60. .catch(() => {
  61. });
  62. }
  63. </script>
  64. <template>
  65. <div style="margin: 0 auto;width: 100%">
  66. <h1 style="text-align: center"> 图书管理系统</h1>
  67. <!-- 添加图书按钮-->
  68. <el-button type="primary" @click="add_dialog_visible=true" size="small">添加图书</el-button>
  69. <!-- 展示数据的表格-->
  70. <el-table :data="books" style="margin: 20px auto;">
  71. <el-table-column label="编号" prop="book_number"></el-table-column>
  72. <el-table-column label="书名" prop="book_name"></el-table-column>
  73. <el-table-column label="类型" prop="book_type"></el-table-column>
  74. <el-table-column label="价格" prop="book_price"></el-table-column>
  75. <el-table-column label="作者" prop="book_author"></el-table-column>
  76. <el-table-column label="出版社" prop="book_publisher"></el-table-column>
  77. <el-table-column label="操作" align="right" width="200px">
  78. <template #default="scope">
  79. <el-button size="small" @click="handleEdit(scope.$index,scope.row)">编辑</el-button>
  80. <el-button size="small" type="danger" @click="handleDelete(scope.$index,scope.row)">删除</el-button>
  81. </template>
  82. </el-table-column>
  83. </el-table>
  84. </div>
  85. <el-dialog title="添加图书" v-model="add_dialog_visible" width="30%" :before-close="handleClose">
  86. <el-form ref="ruleFormRef" :model="book_form" status-icon label-width="120px" class="demo-ruleForm">
  87. <el-form-item label="编号" prop="book_number">
  88. <el-input v-model="book_form.book_number" autocomplete="off"></el-input>
  89. </el-form-item>
  90. <el-form-item label="书名" prop="book_name">
  91. <el-input v-model="book_form.book_name" autocomplete="off"></el-input>
  92. </el-form-item>
  93. <el-form-item label="类型" prop="book_type">
  94. <el-input v-model="book_form.book_type" autocomplete="off"></el-input>
  95. </el-form-item>
  96. <el-form-item label="价格" prop="book_price">
  97. <el-input v-model="book_form.book_price" autocomplete="off"></el-input>
  98. </el-form-item>
  99. <el-form-item label="作者" prop="book_author">
  100. <el-input v-model="book_form.author" autocomplete="off"></el-input>
  101. </el-form-item>
  102. <el-form-item label="出版社" prop="book_publisher">
  103. <el-input v-model="book_form.book_publisher" autocomplete="off"></el-input>
  104. </el-form-item>
  105. <el-form-item >
  106. <el-button type="primary" @click="submitForm(ruleFormRef)">提交</el-button>
  107. <el-button @click="resetFrom(ruleFormRef)">重置</el-button>
  108. </el-form-item>
  109. </el-form>
  110. </el-dialog>
  111. </template>
  112. <style scoped>
  113. </style>

main.js

  1. import {createApp, reactive} from 'vue'
  2. import './style.css'
  3. import App from './App.vue'
  4. import ElementPlus from 'element-plus'
  5. import 'element-plus/dist/index.css'
  6. createApp(App).use(ElementPlus).mount('#app')
  7. // createApp(App).mount('#app')

3.代码组织结构

 4.界面展示

 添加数据以及成功显示

 

 5后端代码

在我的上个文章中,不在重复书写,后端代码没有改变

https://blog.csdn.net/wtt234/article/details/128266545

总结:

到此在ui添加数据完成,还有一些优化没有做,前后端注意的是代码的字段名称一定要注意,

分析问题的时候,查看浏览器F12提示以及查看后端服务的提示,进行分析处理相应故障。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/66534
推荐阅读
相关标签
  

闽ICP备14008679号