小白我上周学到笨办法学Python3第ex50课,个人感觉跨度相当大,许多人或许会笑, 但是对于小白我来说, 直接从地球(python基基基基基础)---跳过了月球(html)----飞到了火星(flask).
于是先去了月球(html), 学习了几个标签后, 今天又看了bilibili上几个flask视频, 说实话上面许多视频讲的太深奥太书面话, 上来就是照着简介念, 似乎讲师自己念的也不太连贯.于是只好就自己用少的可怜的知识来测试ex50课
首先,我这个等级不法搞清楚bilibili讲师视频里的什么这个包这个方法,那个包含方法,这个方法的值传给了那个方法, 就照着Python创始人Zed的要求, 写入书中代码放到了app.py中
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route("/")
def index():
return "Hi there, I`m flask"
# return render_template("index.html")
if __name__ == "__main__":
app.run()
为了更好的理解,我做了一些改动, 我没有用书中的 函数名 hello_wprld() 和return "Hello, World", 因为我想知道,我换了会怎样,这是测试的一部分.代码写完保存了Zed要求的app.py()
于是用书中的方法在虚拟环境中,我创建了项目名文件夹(gothonweb),又在项目名文件夹(gothonweb)下面的几个文件(bin, gothonweb , tests docs templates),注意这里是templates,有一个s, 在英语中是复数,也就是这里面有很多模板,网上有很多以为在app.py里面写的是template, 于是文件夹就命名为template, 后面python app.py就出事了.
现在在powershell里面进入虚拟环境, 再一路cd 到 gothonweb, 运行python app.py, 在浏览器中输入网址http://127.0.0.1:5000/
测试完后,如Zed所说的那样,浏览器中,如下图:
接下来,测试书中ZED提到的return render_template("index.html"), 我没有完全照书中所写,书中后面"index.html"后面还有greeting=greeting,因为对我来说有点复杂,大概意思也就是把greeting变量拿到的值传到html预挖好的坑中,因为zed的index.html有挖好一个坑{{ greeting }},由于是初识flask,我就不整这些复杂的了. app.py代码改为
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
if __name__ == "__main__":
app.run()
然后自己又用可怜的html知识写了一个index.html文件,这个html就是在浏览器中显示一个表格,放入了templates文件夹中测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>表格</title>
</head>
<!--
表格
table 表示表格
tr 表示表格中的行(每一行可以包含一个或多个td或th)
td 表示表格中的标准单元格
th 表示表格中的表头单元格(具有标题的效果,字体加粗,居中显示)
table常用属性
border 表格的边框
width 表格的宽度
像素值或百分比(如果是百分比,参考的是上一级元素的宽度,如果上一次元素未设置,则参考屏幕宽度)
height 表格的高度
align 表格的对齐方式 (left、right、center)
tr常用属性
align 每行中文本内容的水平方向对齐方式(left、right、center)
valign 每行中文本内容的垂直方向对齐方式
bgcolor 设置行的背景颜色
css样式
border-collapse: collapse; 合并表格边框
合并单元格
<td>的colspan和rowspan分别规定单元格横跨的列数和行数
纵向合并 rowspan
横向合并 colspan
-->
<body>
<!-- <table border="1" width="500px" align="center" height="200px" style="border-collapse: collapse;">
<tr>
<th>班级</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
<tr align="center" valign="top" bgcolor="antiquewhite">
<td>101班</td>
<td>张三</td>
<td>18</td>
<td>男</td>
</tr>
<tr align="left">
<td>101班</td>
<td>李四</td>
<td>19</td>
<td>女</td>
</tr>
<tr align="right">
<td>102班</td>
<td>王五</td>
<td>20</td>
<td>男</td>
</tr>
</table>
<hr />
<h3 align="center">纵向合并 rowspan</h3>
<table border="1" width="500px" align="center" style="border-collapse: collapse;">
<tr>
<th>班级</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
<tr align="center" >
<td rowspan="2">101班</td>
<td>张三</td>
<td>18</td>
<td>男</td>
</tr>
<tr align="center">
<td>李四</td>
<td>19</td>
<td>女</td>
</tr>
<tr align="center">
<td>102班</td>
<td>王五</td>
<td>20</td>
<td>男</td>
</tr>
</table>
<hr />
<h3 align="center">横向合并 colspan</h3>
<table border="1" width="500px" align="center" style="border-collapse: collapse;">
<tr>
<th colspan="2">班级+姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
<tr align="center" >
<td rowspan="2">101班</td>
<td>张三</td>
<td>18</td>
<td>男</td>
</tr>
<tr align="center">
<td>李四</td>
<td>19</td>
<td>女</td>
</tr>
<tr align="center">
<td>102班</td>
<td>王五</td>
<td>20</td>
<td>男</td>
</tr>
</table> -->
<div align="center"><h2><b>交接班记录表</b></h2></div>
<div><pre><h3><b> 单位:</b><b> 班:</b><b> 年 月</b></h3></pre></div>
<table align="center" border="2" width="700px" height="800px" style="border-collapse: collapse">
<tr>
<th>日期</th>
<th colspan="2">交接班时间</th>
<th>接班人</th>
<th>交接情况</th>
<th>交接物品、工具等</th>
</tr>
<tr align="center" bgcolor="bisque">
<td rowspan="7">1.1</td>
<td>7:45</td>
<td colspan="2" >张三,李四</td>
<!-- <td>李四</td> -->
<td>进度75%</td>
<td>扫描枪和称</td>
</tr>
<tr height="35px">
<td></td>
<td width="100px"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr bgcolor="bisque">
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> </td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>
ctrl+C 暂停flask后,再次python app.py 去浏览器打开网址http://127.0.0.1:5000/ ,显示如下:
初始flask给我的感觉就像是一个网页服务器,能调试html, 目前小白我的理解也只到这. 欢迎大家留言指正.
前面书中提到的app.py, 这个文件名可以改成别的,也能正常运行.