python flask study

################### 1 MVC mode ###############
python flask study
MVC 流程:

用Hello.py函数最流程的控制-就是MVC中的contoller内容
Hello.py函数指定了一个路由函数app.route('/books/')
同时调用了 models中的book.py函数中的Book方法这是所谓的Model方法M
在执行好函数后,在前台页面的book-list.html展示这是所谓的V

代码及目录结构:
python flask study
Hello.py:

from flask import Flask,render_template
from models.book import Book
app = Flask(__name__)
@app.route('/')
def index():
    return render_template('index.html')
@app.route('/books/')
def book_list():
    books = [
        Book('python flask',59.00),
        Book('Java flask',59.00),
        Book('Linux flask',59.00),
        Book('windows flask',59.00)
    ]
    return render_template('book-list.html',books=books)

if __name__ == '__main__':
    app.run(debug=True)
    # app自带有个debug调式 修改完毕后 不用重启服务器得到

Book.py:

class Book:
    def __init__(self, title,price):
        self.title = title
        self.price = price
    def __str__(self):
        return 'Book {}'.format(self.title)

Book-list.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>图示列表</title>
        <link rel="stylesheet" type="text/css" href="../static/css/style.css"/>
    </head>
    <body>
        <h1>图书列表</h1>
        <table border="1px" cellspacing="" cellpadding="3px">
            <tr>
                <td>书名</td>
                <td>定价</td>
            </tr>
            {% for book in books %}
            <tr>
                <td>{{book.title}}</td>
                <td>{{book.price}}</td>
            </tr>
            {% endfor %}
..为了节省空间省略掉不必要部分

学习的点:
在html中读取路由函数中过来的数据,当不知道多少数据量的情况下 可以用下面的方法:

{% for book in books %}
            <tr>
                <td>{{book.title}}</td>
                <td>{{book.price}}</td>
            </tr>
            {% endfor %}

在路由函数中,调用模板并传递函数:

@app.route('/books/')
def book_list():
    books = [
        Book('python flask',59.00),
        Book('Java flask',59.00),
    ]
    return render_template('book-list.html',books=books)

###########2 设置debug 模式的方法 #########
python flask study

Hello.py:
app = Flask(__name__)
app.config.from_object(config)

config.py:
DEBUG = True

########3 参数的基本写法 #######

@app.route('/article/<id>')
# id是一个参数<>就是这个写法
def article(id):
   return f'您请求的id是:{id}'

http://127.0.0.1:5000/article/dd 您请求的id是:dd

猜你喜欢

转载自blog.51cto.com/zhangfang526/2488073