笨办法学Python3-Ex50学习笔记

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            <br>        
   

{% if greeting %}
    I just wanted to say
    {{ greeting }}
{% else %}
    Hello, world!
{% endif %}


10、index.html解读:

  • html文件应该都是文本,python都是代码,所以在html中要出现代码,可以用{% 代码 %},变量的输出用{{ }}格式,有点类似python中: f"Hello, {greeting}"的写法。
  • 文件中的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()

 

 

你可能感兴趣的:(Python)