请关注公众号:自动化测试实战

大家先自己写一下,船长写这个花了半个小时,因为我和大家一样,也是新手:

写一个页面如下,点击书名以后跳转到书的详情页

书的信息如下:

books = [
{
'id': 1,
'title': u'三国演义',
'author': u'罗贯中',
'profile': u'《三国演义》是中国古典四大名著之一,是中国第一部长篇章回体历史演义小说,全名为《三国志通俗演义》(又称《三国志演义》),作者是元末明初的著名小说家罗贯中。',
'price': u''
},
{
'id': 2,
'title': u'水浒传',
'author': u'施耐庵',
'profile': u'《水浒传》,是中国四大名著之一,全书描写北宋末年以宋江为首的108位好汉在梁山聚义,以及聚义之后接受招安、四处征战的故事。',
'price': u''
},
{
'id': 3,
'title': u'西游记',
'author': u'吴承恩',
'profile': u'《西游记》为明代小说家吴承恩所著。取材于《大唐西域记》和民间传说、元杂剧。宋代《大唐三藏取经诗话》(本名《大唐三藏取经记》)是西游记故事见于说话文字的最早雏形,其中,唐僧就是以玄奘法师为原型的。',
'price': u''
},
{
'id': 4,
'title': u'红楼梦',
'author': u'曹雪芹',
'profile': u'《红楼梦》,中国古典四大名著之首,清代作家曹雪芹创作的章回体长篇小说[1] ,又名《石头记》《金玉缘》。此书分为120回“程本”和80回“脂本”两种版本系统。新版通行本前80回据脂本汇校,后40回据程本汇校,署名“曹雪芹著,无名氏续,程伟元、高鹗整理”[2] 。后40回作者尚有争议,但是对于矮化甚至腰斩后40回的极端倾向也应保持警惕。',
'price': u''
}
]

大家先自己写写试试,再看答案。

答案:

demo.py

# coding: utf-8

from flask import Flask,render_template

app = Flask(__name__)
app.debug = True books = [
{
'id': 1,
'title': u'三国演义',
'author': u'罗贯中',
'profile': u'《三国演义》是中国古典四大名著之一,是中国第一部长篇章回体历史演义小说,全名为《三国志通俗演义》(又称《三国志演义》),作者是元末明初的著名小说家罗贯中。',
'price': u''
},
{
'id': 2,
'title': u'水浒传',
'author': u'施耐庵',
'profile': u'《水浒传》,是中国四大名著之一,全书描写北宋末年以宋江为首的108位好汉在梁山聚义,以及聚义之后接受招安、四处征战的故事。',
'price': u''
},
{
'id': 3,
'title': u'西游记',
'author': u'吴承恩',
'profile': u'《西游记》为明代小说家吴承恩所著。取材于《大唐西域记》和民间传说、元杂剧。宋代《大唐三藏取经诗话》(本名《大唐三藏取经记》)是西游记故事见于说话文字的最早雏形,其中,唐僧就是以玄奘法师为原型的。',
'price': u''
},
{
'id': 4,
'title': u'红楼梦',
'author': u'曹雪芹',
'profile': u'《红楼梦》,中国古典四大名著之首,清代作家曹雪芹创作的章回体长篇小说[1] ,又名《石头记》《金玉缘》。此书分为120回“程本”和80回“脂本”两种版本系统。新版通行本前80回据脂本汇校,后40回据程本汇校,署名“曹雪芹著,无名氏续,程伟元、高鹗整理”[2] 。后40回作者尚有争议,但是对于矮化甚至腰斩后40回的极端倾向也应保持警惕。',
'price': u''
}
] @app.route('/')
def hello_world():
return render_template('index.html', books=books) @app.route('/detail/<id>/')
def book_detail(id):
id = int(id)-1
return render_template('bookcontent.html', books=books, i=id) if __name__ == '__main__':
app.run()
 

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>四大名著</title>
</head>
<style>
#table_test tr{
width: 50px;
}
#table_test tr td{
width: 70px;
}
</style>
<body>
<table border="1" id="table_test">
<thead>
<tr bgcolor="#f0f8ff">
<td>id</td>
<td>书名</td>
<td>作者</td>
<td>价格</td>
</tr>
</thead>
<tbody>
{% for book in books %}
<tr>
<td>{{ book.id }}</td>
<td><a href="{{ url_for('book_detail', id=book.id) }}">{{ book.title }}</a></td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
bookcontent.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>书籍详情</title>
</head>
<body>
<p>{{ books[i].profile }}</p>
</body>
</html>

内容更新通知

因为web开发不可避免的要自己写页面,所以没办法,不讲HTML大家包括我根本没法继续下去,所以船长决定发10片文章,讲完前端基础课。每节课信息量可能有些大,我想愿意学的自然能坚持下来。为了早点拿到高工资,学呗~~希望各位和我一起加油~

flask第二十九篇——一个例子+【更新内容通知】的更多相关文章

  1. 第二十九篇、UICollectionView瀑布流

    1.实现思路 >第一种方案:UIScrollView 镶嵌三个UITableView (不推荐使用) >第二种方案:UIScrollView 镶嵌UIImageView (需要解决循环利用 ...

  2. Python之路(第二十九篇) 面向对象进阶:内置方法补充、异常处理

    一.__new__方法 __init__()是初始化方法,__new__()方法是构造方法,创建一个新的对象 实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法 __ ...

  3. flask第二十五篇——控制语句

    有兴趣的请加船长公众号:自动化测试实战 先和大家强调一个发邮件的问题 # coding: utf-8 import smtplib from email.mime.text import MIMETe ...

  4. flask第二十二篇——模板【4】过滤器

    请关注微信公众号:自动化测试实战 先来教大家一个pycharm设置默认模板的方法.我们每次新建模板或者平时写代码打开以后可能都要重复写# coding: utf-8这些代码,其实我们可以设置好模板,让 ...

  5. flask第十九篇——模板【3】

    请关注微信公众号:自动化测试实战 今天我们继续模板的知识,现在我们增加字典的复杂度,这个时候在render_template第二个参数可以传**title,以后我们会用**context代替原来的ti ...

  6. Python之路【第二十九篇】:django ORM模型层

    ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...

  7. 第二十九篇、CoreAnimation的使用

    使用的的三个步骤 1.初始化演员 2.设置好剧情 3.播放 主要类: CALayer // 绘图部分 CABaseAnimation // 基本动画(缩放,移动) CAKeyframeAnimatio ...

  8. flask第二十六篇——模板【控制语句】【2】

    如果你也在学flask,就请加船长的公众号:自动化测试实战 我们先补充一下for循环的知识,我们之前说过,flask是由Jinja2+sqlAlchemy+werkzeug组成的,我们现在学的控制语句 ...

  9. flask第二十四篇——模板【6】自定义过滤器

    请关注孟船长的公众号:自动化测试实战 大家想了解其他过滤器可以参考这里: http://jinja.pocoo.org/docs/dev/templates/#builtin-filters ---- ...

随机推荐

  1. Js中的filter()方法

    /* filter()方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组. filter()基本语法: arr.filter(callback[, thisArg]) filte ...

  2. try with resources简洁的异常捕获机制

    通过前篇的<Java文件IO流的操作总结>,我们知道了基本输入输出流的使用方式,但是每次都需要在finally处关闭流资源,这样操作起来既啰嗦又麻烦,有没有更简洁的方式呢?本篇就来讲解jd ...

  3. hdu5057 分块处理,当数值大于数据范围时树状数组 真是巧 将大数据分为小数据来处理

    这题说的给了100000个数有100000次操作 询问 L和R 区间内 在D位上为P的个数,用树状数组存 要开[10][10][100000]的int 开不了但是能开 这么大的unsign short ...

  4. React 函数传参

    import React, { Component } from 'react'; import { render } from 'react-dom'; class GroceryList exte ...

  5. 端口安全检查shell脚本

    #!/bin/bash #This script name is scan_analyse.sh . /etc/profile echo "start time is $(date)&quo ...

  6. 20145221 《Java程序设计》第六周学习总结

    20145221 <Java程序设计>第六周学习总结 教材学习内容总结 第十一章部分 - 输入与输出 文件的读写 网络上传数据的基础 同样要先掌握父类中方法,核心类如下: 以上则是老师提出 ...

  7. 20145319 《网络对抗》逆向与Bof基础

    20145319 逆向与Bof实验 1 实验内容 本次实验以可执行文件pwn1为例,将对pwn1进行反汇编的基础上进行功能上的解读,并进行缓冲区溢出攻击 可执行文件pwn1的正常流程是主函数调用foo ...

  8. luogu P1025 数的划分

    https://www.luogu.org/problem/show?pid=1025 n的k划分 且不出现划分成0的情况  可以 分为两种情况 所有划分的数 都大于1的情况 至少划分的数里面有1的情 ...

  9. 使用javascript模拟常见数据结构(三)

    六.字典和散列表 我们已经知道,集合表示一组互不相同的元素(不重复元素).在字典中,存储的是键值对,其中键值是用来查询特定的元素的.字典和集合是很相似的,集合采用[值,值]的方式存储,而字典则是以[键 ...

  10. UOJ #266 【清华集训2016】 Alice和Bob又在玩游戏

    题目链接:Alice和Bob又在玩游戏 这道题就是一个很显然的公平游戏. 首先\(O(n^2)\)的算法非常好写.暴力枚举每个后继计算\(mex\)即可.注意计算后继的时候可以直接从父亲转移过来,没必 ...