1、运行的windows10系统。
2、强烈建议下载git bash, 在里面操作,在power shell下操作会有一些问题。下载网站:https://gitforwindows.org/
3、运行git bash,可以直接用以下命令顺利创建目录关系:
cd projects
mkdir gothonweb
cd gothonweb
mkdir bin gothonweb tests docs templates (win10的cmd/powershell下无法这样输入的)
touch gothonweb/__init__.py
touch tests/__init__.py
4、你会看到在gothonweb目录下又创建了一个相同名字的gothonweb目录,所以有两个gothonweb目录。这里称第一个为上级gothonweb目录,另一个为下级gothonweb目录。
5、进入venv环境:
在git bash下,执行:
source lpthw-venv/script/activate (win10的cmd/powershell下无法这样输入的,lpthw-venv是自己创建的venv目录。这个可以自己定义。用git bash也避免了powershell的权限问题。)
6、编写ex50.py,也就是app.py,注意下面这段代码出现了变量greeting,书中代码是没有的。看视频就知道,作者进行了说明,说书中编辑出错了。否则,在书中作者说删除greetings(有一个错误,是greeting,没有s),读者会一头雾水。。。
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello_world():
greeting = "Hello, World"
return greeting# 另一种写法(教学视频中出现的)
# greeting = "World"
# return f"Hello, {greeting}"if __name__ == "__main__":
app.run()
7、app.py放在哪个目录下面?有许多相关博客说放在bin这个目录下,但看书中视频,作者是放在上级gothonweb下的。这样就可以在上级gothonweb下,直接执行:python app.py
8、模板文件index.html是放在templates下面的
9、书中模板文件index.html是这样的:
Gothons Of Planet Percal #25
{% if greeting %}
I just wanted to say
{{ greeting }}
{% else %}
Hello, world!
{% endif %}
10、index.html解读:
文件中的2em,em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。
标签:对文档中的文本进行格式化,强调文本。
11、修改后的app.py:
from flask import Flask
from flask import render_template
app = Flask(__name__)
# app = Flask(__name__, template_folder="templates/") (作者在视频中提到的指定index.html目录的方法。执行过程中出错的许多原因是把app.py放在bin下执行,其实作者是放在上级gothonweb下的,在这个目录下执行python app.py,会自动搜索下面的templates目录的。如果是这样做了,就不需要指定template_folder了。)
@app.route("/")
def index():
greeting = "Hello, World"
return render_template("index.html", greeting=greeting)
if __name__ == "__main__":
app.run()