1. 第一个flask项目,使用pycharm新建一个flask项目
然后点击create按钮,就成功的创建好了一个flask项目。然后我们点击运行按钮,在网页中输入http://127.0.0.1:5000/
就能够看到我们的hello world
了表示我们项目新建成功,并且没有任何问题。
2. 项目文件解析
当我们新建好了一个文件之后,整个项目的目录结构如下:
- static:这个文件里面一般存放整个项目的所有静态文件,如css,js等文件
- templates: 这个文件夹里面一般存放所有模板文件,也就是html文件.
- app.py:整个项目的入口文件
3. apps.py文件代码解释
# 从flask框架中导入Flask类
from flask import Flask
# 实例化Flask对象,__name__ 是这个文件的名字,因为我们
# 这个文件的名字为app.py,所以__name__的值为"app"
app = Flask(__name__)
# app.route() 一个装饰器,传入的参数就为当前视图的url
# 当我们运行flask项目时,默认为打开5000端口,我们通
# 过http://127.0.0.1:5000端口就能访问到我们启动的项目,
# 这里传入的是"/",我们直接输入http://127.0.0.1:5000/就能访问到这个函数(也称视图)
# 如果传入的是"/test/",那么我们访问这个函数的时候的url就为http://127.0.0.1:8000/test/了
@app.route('/')
# 函数主体
def hello_world():
return 'Hello World!'
# 如果这个文件不是当做一个模块被导入时,就会执行这个里面的代码
if __name__ == '__main__':
# 启动项目
app.run()
4. 项目配置
1. DEBUG模式
flask项目默认的DEBUG模式是关闭的,一般我们在开发的时候需要打开DEBUG模式。
怎样代开DEBUG模式
当我们没有打开DEBUG模式的时候,运行项目之后控制台是这样的
在pycharm2018版本及以上中,已经不能通过代码来打开和关闭DEBUG
模式了,知识使用pycharm来打开和关闭DEBUG
模式
这样,我们就打开我们的DEBUG模式了.然后我们运行项目,就能够看到DEBUG模式已经被打开了
打开DEBUG模式的优点:
- 当我们更新了代码之后,按下
ctrl+s
之后,整个flask项目就会自己重新启动,加载我们修改的代码 - 当我们没有开启DEBUG模式的时候,如果我们写的代码出错了,那么在网页是不会显示出来的,需要我们自己去控制台查看错误。网页上只会显示一个错误的页面给我们。为了演示效果,首先我们修改一个错误出来,在
app.py
文件中的hello_world
函数中我们修改代码:
@app.route('/')
# 函数主体
def hello_world():
a = 1
b = 0
c = a/b
return 'Hello World!'
然后我们启动项目,在浏览器中输入127.0.0.1:5000
,然后就会加载这个hello_world函数,但是因为0是不能被除的,所肯定会报错的。网页上就会显示如下页面
出现这样的页面肯定不是我们希望看到的,我们想要看到的具体的错误之类的东西,而当我们打开DEBUG之后,我们就能够看到具体的错误信息了。如下图所示
这样,我们就能看到具体的错误与错误的行数了.
在每行错误代码提示的右边,我们可以看到有一个小终端样式的图表,而且可以点击,这个是给我们用来调试代码的,方便我们查找错误和定位错误
我们点击这个小终端图标,就会弹出一个模态对话框,让我们输入密码,如下图:
这个PIN在我们的pycharm控制台中可以看到
然后我们将这个PIN输入进去,就可以开始调试了,PIN中间的-
是可以省略的
然后我们就可以开始调试了
打开DEBUG的缺点
容易被别人看到我们的代码漏洞,从而恶意攻击我们的网站,所以我们在生产环境下降DEBUG
模式打开,便于我们调试代码,而部署项目到线上时,就需要关闭DEBUG
模式,保证我们网站的安全性
2. 域名与端口的配置
和配置DEBUG一样,首先打开Edit Configuration 界面
- 配置端口为8000,默认为5000端口。
- 配置域名为0.0.0.0,默认是127.0.0.1
配置域名为0.0.0.0的意思是别人的电脑也能访问你的这个flask项目,只需要别人输入你的电脑的ip地址和相应端口号就能够访问了,而127.0.0.1就只能自己电脑访问这个项目。
当配置域名为0.0.0.0之后,想要别人能够访问你的项目,还必须得打开防火墙,打开防火墙,打开防火墙!!! - 域名和端口一起配置
注意:
- port和host前面必须为两个
--
,少一个都不行,会报错 - –port和–host一起配置时,中间需要由空格,如果没有的话,也会报错
- 在pycharm2018版本及以后,是不能通过代码的方式修改域名与端口的,所以本文并没有列出相关的配置方法。想了解的可自行百度 了解
3. 项目的其他配置
在整个项目中,后面们使用一些东西的时候都避免不了做一些相关的配置,所以我们一把会单独新建一个configs.p文件,用来存放所有的配置信息.如图所示
然后我们会将相关的配置信息写在这个文件里面,然后再app.py
文件中导入引用,写入以下代码就能够导入配置文件了,配置文件的格式就是xxx=xxx
。
from flask import Flask
import configs
app = Flask(__name__)
app.config.from_object(configs)
我们也可以使用另外一种方法导入配置文件
# 从flask框架中导入Flask类
from flask import Flask
# import configs
app = Flask(__name__)
# app.config.from_object(configs)
app.config.from_pyfile('configs.py')
这样,我们就不用导入configs
模块了,直接在app.config.from_pyfile
中传入参数,即文件的名字就可以了
这个函数还有一个silent
参数,默认为False,意思就是当传入的参数这个文件找不到的时候,会终止程序,抛出异常。当我们设置silent
参数为True时,当找不到这个文件的时候,也不会终止程序,还是会直接运行,只是flask项目并不会去加载我们的配置文件了。所以一把我们就默认为False就行了。
其实app.config
是一个字典对象,我们也可以直接添加配置信息,不写在configs.py文件中,例如:
# 从flask框架中导入Flask类
from flask import Flask
# import configs
app = Flask(__name__)
# app.config.from_object(configs)
# app.config.from_pyfile('configs.py')
app.config['xxx'] = 'xxx'
这样也是可以的,值是这样的话当配置信息很多时,就需要写很多代码,不方便,所以一般我们都会写在配置文件中,然后导入.