zoukankan      html  css  js  c++  java
  • 测开之路一百二十四:flask之MVC响应过程

    MVC流程

    原本的请求响应

    结构:

    视图:

    from flask import Flask, render_template

    app = Flask(__name__)


    @app.route("/books/")
    def book_list():
    return render_template('book_list.html')


    if __name__ == '__main__':
    app.run(debug=True)

    html

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>图书列表</title>
    </head>
    <body>
    <h1>图书列表</h1>
    <ul>
    <li>标题: </li>
    <li>定价: </li>
    <li>作者: </li>
    <li>出版社: </li>
    </ul>
    </body>
    </html>

    请求

    MVC过程:

    新建一个文件夹用于存放处理逻辑

    写一个简单的初始化逻辑

    class Book:

    def __init__(self, title, price, auther, publisher):
    self.title = title
    self.price = price
    self.auther = auther
    self.publisher = publisher

    def __str__(self):
    return f'<Book {self.title}>'

    视图函数调用,并传给html,第一个book为html里面的位置参数,第二个book为真实数据

    from flask import Flask, render_template
    from modles.book import Book

    app = Flask(__name__)


    @app.route("/books/")
    def book_list():
    book = Book('xx课程', 100, 'xx作者', 'xxx出版社', )
    return render_template('book_list.html', book=book)


    if __name__ == '__main__':
    app.run(debug=True)

    render_template()支持传入参数

    html渲染,janja2接收参数:{{ 位置参数 }}

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>图书列表</title>
    </head>
    <body>
    <h1>图书列表</h1>
    <ul>
    <li>标题: {{ book.title }}</li>
    <li>定价: {{ book.price }}</li>
    <li>作者: {{ book.auther }}</li>
    <li>出版社: {{ book.publisher }}</li>
    </ul>
    </body>
    </html>

    访问

    渲染列表

    from flask import Flask, render_template
    from modles.book import Book

    app = Flask(__name__)


    @app.route("/books/")
    def book_list():
    books = [
    Book('1.1', '1.2', '1.3', '1.4'),
    Book('2.1', '2.2', '2.3', '2.4'),
    Book('3.1', '3.2', '3.3', '3.4'),
    Book('4.1', '4.2', '4.3', '4.4')
    ]
    return render_template('book_list.html', books=books)


    if __name__ == '__main__':
    app.run(debug=True)

    html里面用for循环渲染

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>图书列表</title>
    </head>
    <body>
    <h1>图书列表</h1>
    <table border="1" cellpadding="5">
    <tr>
    <td>书名</td>
    <td>定价</td>
    <td>作者</td>
    <td>出版社</td>
    </tr>
    {% for book in books %}
    <tr>
    <td>{{ book.title }}</td>
    <td>{{ book.price }}</td>
    <td>{{ book.auther }}</td>
    <td>{{ book.publisher }}</td>
    </tr>
    {% endfor %}
    </table>
    </body>
    </html>

    访问

  • 相关阅读:
    LeetCode OJ-- Count and Say
    3dContactPointAnnotationTool开发日志(二)
    如何将PDF的背景色设置为保护眼睛的苹果绿色
    3dContactPointAnnotationTool开发日志(一)
    随便测测
    360浏览器重新打开不小心关闭的网页
    Unity3d学习日记(四)
    Unity3d学习日记(三)
    Unity3d学习日记(二)
    新的目标ヾ(◍°∇°◍)ノ゙
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11441754.html
Copyright © 2011-2022 走看看