• flask-vue-sqlite3-->api接口-优化版本


    flask-vue-sqlite3-->api接口示例:

    代码组成信息:



    最终项目组织截图

     


    一数据信息准备:

    1.准备数据库:字段以及插入的数据信息

    2.数据库数据插入语句:

    insert into books(title,author,price)

    values('中国历史','中国人',99.99),

    ('java','tom',199.99),

    ('golang','地鼠先生',89.99),

    ('python','jerry',100.99)

    insert into books(title,author,price) values('中国历史','中国人',99.99),('java','tom',199.99),('golang','地鼠先生',89.99),('python','jerry',100.99)

    二.flask的配置信息:

    app.py

    1. from flask import Flask
    2. from flask import jsonify,render_template
    3. import sqlite3
    4. app=Flask(__name__)
    5. @app.route("/api/books")
    6. def books():
    7. conn=sqlite3.connect("books.db")
    8. conn.row_factory=sqlite3.Row #把数据库的字段和查询的字段信息放在一起
    9. cur=conn.cursor()
    10. sql="select * from books"
    11. rows=cur.execute(sql).fetchall()
    12. rowsdics=[dict(row) for row in rows]
    13. return jsonify(rowsdics)
    14. @app.route("/")
    15. def home():
    16. return render_template("index.html",titl="ht API")
    17. if __name__ == '__main__':
    18. app.run()

    初步数据验证,也就是"/api/books",测试是否可以获取到数据库的信息


    三.前端的代码的编写

    3.0用互联网文件实现

    index.html文件内容:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Flask API</title>
    6. <!-- 本地版本的引用-->
    7. <!-- <script src="vuev2.6.14.js"></script>-->
    8. <!-- <script src="vue-resource1.5.1.min.js"></script>-->
    9. <!-- cdn 版本的引用-->
    10. <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
    11. <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
    12. </head>
    13. <body>
    14. <div id="app">
    15. <h1>Flask &api &Vuejs&{{title}}</h1>
    16. <!-- 表格信息-->
    17. <table border="1" cellpadding="5" cellspacing="5">
    18. <th>
    19. <td>#</td>
    20. <td>标题</td>
    21. <td>作者</td>
    22. <td>定价</td>
    23. </th>
    24. <tr v-for ="book in books">
    25. <td>[[book.id]]</td>
    26. <td>[[book.title]]</td>
    27. <td>[[book.author]]</td>
    28. <td>[[book.price]]</td>
    29. </tr>
    30. </table>
    31. </div>
    32. <script>
    33. var app=new Vue({
    34. el:"#app",
    35. data:{
    36. books:[]
    37. },
    38. delimiters:["[[","]]"],
    39. mounted:function () {
    40. this.fetchData();
    41. },
    42. methods:{
    43. fetchData(){
    44. this.$http.get("/api/books").then(rsp=>{
    45. this.books=rsp.body
    46. },err=>{console.log('Error')})
    47. }
    48. }
    49. })
    50. </script>
    51. </body>
    52. </html>


    3.1前端代码的优化0---实现离线文件的使用:[]flask --static静态文件的获取

    实现调用本地文件的vuev2.6.14.js文件以及vue-resource1.5.1.min.js的事项,

    重点实现步骤:

            <script src="{{url_for('static',filename='vuev2.6.14.js')}}"></script>
            <script src="{{url_for('static',filename='vue-resource1.5.1.min.js')}}"></script>

    具体实现代码:

    1. <head>
    2. <meta charset="UTF-8">
    3. <title>Flask API</title>
    4. <!-- 本地版本的引用-->
    5. <!-- <script src="vuev2.6.14.js"></script>-->
    6. <!-- <script src="vue-resource1.5.1.min.js"></script>-->
    7. <!-- 调用本地版本-->
    8. <script src="{{url_for('static',filename='vuev2.6.14.js')}}"></script>
    9. <script src="{{url_for('static',filename='vue-resource1.5.1.min.js')}}"></script>
    10. <!-- <script src="vuev2.6.14.js"></script>-->
    11. <!-- <script src="vue-resource1.5.1.min.js"></script>-->
    12. <!-- cdn 版本的引用-->
    13. <!-- <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>-->
    14. <!-- <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>-->
    15. </head>

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Flask API</title>
    6. <!-- 本地版本的引用-->
    7. <!-- <script src="vuev2.6.14.js"></script>-->
    8. <!-- <script src="vue-resource1.5.1.min.js"></script>-->
    9. <!-- 调用本地版本-->
    10. <script src="{{url_for('static',filename='vuev2.6.14.js')}}"></script>
    11. <script src="{{url_for('static',filename='vue-resource1.5.1.min.js')}}"></script>
    12. <!-- <script src="vuev2.6.14.js"></script>-->
    13. <!-- <script src="vue-resource1.5.1.min.js"></script>-->
    14. <!-- cdn 版本的引用-->
    15. <!-- <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>-->
    16. <!-- <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>-->
    17. </head>
    18. <body>
    19. <div id="app">
    20. <h1>Flask &api &Vuejs&{{title}}</h1>
    21. <!-- 表格信息-->
    22. <table border="1" cellpadding="5" cellspacing="5">
    23. <tr>
    24. <td>#</td>
    25. <td>标题</td>
    26. <td>作者</td>
    27. <td>定价</td>
    28. </tr>
    29. <tr v-for ="book in books">
    30. <td>[[book.id]]</td>
    31. <td>[[book.title]]</td>
    32. <td>[[book.author]]</td>
    33. <td>[[book.price]]</td>
    34. </tr>
    35. </table>
    36. </div>
    37. <script>
    38. var app=new Vue({
    39. el:"#app",
    40. data:{
    41. books:[]
    42. },
    43. delimiters:["[[","]]"],
    44. mounted:function () {
    45. this.fetchData();
    46. },
    47. methods:{
    48. fetchData(){
    49. this.$http.get("/api/books").then(rsp=>{
    50. this.books=rsp.body
    51. },err=>{console.log('Error')})
    52. }
    53. }
    54. })
    55. </script>
    56. </body>
    57. </html>


    补充知识:

    默认情况下,Flask 在程序根目录中名为 static 的子目录中寻找静态文件。因此,我们一般在应用的包中创建一个叫static的文件夹,并在里面放置我们的静态文件,我们这里使用了

    ‘url_for’,调用静态文件

     

  • 相关阅读:
    [含毕业设计论文+PPT+源码等]ssm装潢应用系统小程序+Java后台管理系统|前后分离VUE
    EFK(elasticsearch+filebeat+kibana)日志分析平台搭建
    OpenCV实现图像 开闭运算
    游戏陪玩系统app
    【iOS】实现评论区展开效果
    初识href超链接
    ASTM D2863: 塑料最低氧气浓度测试
    ‘std::thread‘ has not been declared
    【Nginx】nginx | 微信小程序验证域名配置
    四、Netty模块组件
  • 原文地址:https://blog.csdn.net/wtt234/article/details/125022172