################### 1 MVC mode ###############
MVC 流程:
用Hello.py函数最流程的控制-就是MVC中的contoller内容
Hello.py函数指定了一个路由函数app.route('/books/')
同时调用了 models中的book.py函数中的Book方法这是所谓的Model方法M
在执行好函数后,在前台页面的book-list.html展示这是所谓的V
代码及目录结构:
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 模式的方法 #########
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