flask学习笔记之最简单的flask代码学习

今天开始学习flask,主要是个人原因已经进入老年痴呆期,研究代码只好慢慢品。

flask最简单的代码如下:

from flask import Flask 
app = Flask(__name__)

@app.route('/')
def hello_world():
#return 'Hello World!'

if __name__ == '__main__':
app.run()

一行行研究
  • 第一行:from flask import Flask
意思就是引入一个python模块这个模块的名字是flask,引入后就可以使用这个模块中已经写好的功能了。
那么问题是from和import都是怎么用的呢,是不是直接import flask就可以了?
研究下...
我是用pycharm这工具来学习的,在代码编辑界面可以通过ctrl+鼠标左键点击from和import后面的flask来追踪看看代码的来源
点击from后面flask追到

 

 

 

 


点击import后面的flask追到

 

 __init__.py是包文件,app.py是包文件中引用的一个模块文件。

也就是说第一个flask是包名也可以说是文件目录名,第二个Flask类名。

如果不用from直接用import flask会如何呢?直接用from flask不行吗?(注意第二是Flask第一个字母大写的)

经过各种测试总结下来,from就是为了引用时分类过滤的,如果不使用from flask implort Flask 直接使用 import flask 那么在以下的代码中使用Flask类时就只用用flask.Flask了

写起来代码多一点,from和import联合使用是为了精准引用,减少没有必要的引用。被精确引用的部分放到import后面,其它为了精确引用层层定位的部分就放到from后面(目录文、文件;也可以说成包和模块)。

另外这里讲一下如果直接用 from Flask是有问题的,Flask是app.py文件中所写的一个类名。不指定路径和文件系统是找不到的,同时有了from就一定要有import这个是语法规定。

flask这个包会安装在如下目录中,这个目录对项目来说会读取的到,大家基本上是使用虚拟环境的方式,虚拟环境不在这里展开讲了。

 同时发现不支持import flask.Flask 和import.app.Flask 这些写法。

 

  • 终于进入第二行研究了
app = Flask(__name__) 
看起来就是创建一个类的实例,先不管Flask到底实现了什么,让我比较疑惑的就是__name__这个参数,研究一下。
追了一阵子代码看不出来干啥的,主要是对python本身也不熟悉,根据广大网友的的反馈总结下来如下:
__xx__类似这一种带双下划线的都是Python系统内部定义的全局变量
__name__记录的是文件名(把.py去掉)主要和__main__搭配使用的,对于运行主文件(第一个被执行的入口文件__name__="__main__")
也就是说程序运行在主文件时全局变量的值是"__main__"而不是文件名,运行在其它文件代码时都是当时的文件名(import的代码运行时)。
这个原因应该是python不像C和C++有头文件概念,每个文件之间是平等的,如果在代码中不加if __name__ == '__main__':的判断所有文件中的主体代码都会执行。
写程序尽量还是使用一个主程序文件,其它文件主要些封装的一些类和方法供调用。特殊情况特殊对待,多个文件同时执行代码有什么用途目前还没研究,不过查问题会比较难。

app这个实例被实现后具体能做什么就看Flask这个类封装了哪些强大功能了,总之是和web相关了。
  • 第三行代码了
@app.route('/')
看起来这个知识点很多呀,第一是修饰器,第二个是路由。
  • 第四行、第五行
def hello_world():
#return 'Hello World!'
定义一个路由执行的函数
  • 最后一行参数写全可以写成这样
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888, debug=True)









 

 

 

 

 

 

 

posted @ 2020-05-12 18:00  aifather  阅读(385)  评论(0)    收藏  举报