昨天被虚拟环境搞的很疲,感谢知乎上罗伊的指点,今天可以在Git Bash中自由开启虚拟环境自由飞翔了。
接着书本上的走,开始第3章。
—————-代码分割线start—————-
from flask import Flask, render_template # 把Jinja2模板引擎集成到程序中
from flask.ext.script import Manager # Flask调用扩展的方法是用flask.ext.ext_name
app = Flask(__name__)
manager = Manager(app) #关于Manager这个类,书上没有过多的解释
@app.route('/')
def index():
return render_template('index.html') # call the template file
@app.route('/user/<name>')
def user(name):
return render_template('user.html', name=name) # template file with argument
# 这里的name=name,前面的name是指模板user.html中的命名空间(对这个概念还不理解)
# 后面的name是指脚本中或者访问的URL中的变量值
if __name__ == '__main__':
manager.run() # 注意这里不再是app.run()了
—————–代码分割线end————————–
看了下代码,from flask比之前多import了render_template函数,书上的解释是“render_template函数把Jinja2模板引擎集成到了程序中”。(duang! 主角就这么上场了!)相应的,要在flasky文件夹下新建个文件夹叫templates,用来存放html的模板。而且默认情况下,Flask会去程序文件夹中的templates子文件夹中寻找模板。
切换到3a版本跑一下,报错,找不到模块flask.ext.script,往前翻了一下,原来这是Flask的一个扩展,需要安装整合到程序中。找到安装方法:
进入虚拟环境后输入pip install flask-script,就像前面安装flask那样开始安装了。(我感觉这个pip的作用就像一根管子,需要安装什么模块了,就输入pip install module_name,把模块通过这根管子传输过来安装上。不知道理解的对不对。)
然后就可以跑起来了,并且学习了一下这个模块的一些命令:(命令在 python hello.py 后面输入)
shell 可以调出python shell,在上下文中,我的理解是就在当前运行的命令窗口中
runserver 运行服务器,也就是让这个服务器脚本运行起来的关键命令
–host a.b.c.d “告诉Web服务器在哪个网络接口上监听来自客户端的链接”,我的理解就是设置IP及端口号
比如:
1. 不输入–host命令,直接python hello.py runserver,会显示在127.0.0.1:5000上运行,这时在浏览器中输入127.0.0.1:5000,就可以正常访问页面了。
2. 输入 python hello.py runserver –host 0.0.0.0 ,然后会显示在这个端口上运行了:
这个命令的神奇之处在于,可以让同网中的其他设备访问,只是要把0.0.0.0:5000替换为当前试用的计算机的外网IP地址,也就是我们公司贴在办公桌上给每个人分配好的IP地址,我手机连的旁边同事的wifi,所以是和我的电脑在同一个网中的,打开浏览器,输入电脑IP:5000,正常跳转显示“Hello World!”,激动人心啊!哈哈哈!
到此,学会了调用模板,将前后端分离;并且可以在模板文件中设置变量。
根据之前看的视频,后面应该还会学习在模板中输出列表、遍历列表、输出字典、根据key查询value值。
补充:
关于HTML模板的编写,其中变量的写法是两对英文花括号:
<h1>Hello, {{name}}!</h1>