网站建设定制开发【Flask框架】——第一个Flask项目


文章目录

网站建设定制开发第一个项目

网站建设定制开发本文适合有一定前端、Python、网站建设定制开发网路基础的同学阅读。

1、安装环境

网站建设定制开发创建虚拟环境

mkvirtualenv flask_env

安装Flask

pip install flask

网站建设定制开发查看虚拟环境

workon

网站建设定制开发进入虚拟环境

workon flask_env

列出当前虚拟环境安装的库

pip list

2、创建项目



app.py

rom flask import Flaskapp = Flask(__name__)  # 初始化 Flask项目的服务@app.route('/')def hello_world():  # put application's code here    return 'Hello World!'if __name__ == '__main__':      app.run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3、启动程序

方式一:pycharm run

方式二 :terminal python app.py

方式三 进入目录 python app.py

方式四 设置环境变量 set FLASK_APP = app.py
flask run

Ctrl C 关闭程序

4、访问项目

5、参数说明

文件:app.py

rom flask import Flaskapp = Flask(__name__)  # 初始化 Flask项目的服务@app.route('/')def hello_world():  # put application's code here    return 'Hello World!'if __name__ == '__main__':      app.run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

接下来就来详细查看一下 Flask 应用程序在创建的时候一些需要我们关注的参数

def __init__(        self,        import_name: str,        static_url_path: t.Optional[str] = None,        static_folder: t.Optional[t.Union[str, os.PathLike]] = "static",        static_host: t.Optional[str] = None,        host_matching: bool = False,        subdomain_matching: bool = False,        template_folder: t.Optional[str] = "templates",        instance_path: t.Optional[str] = None,        instance_relative_config: bool = False,        root_path: t.Optional[str] = None,    ):
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

import_name:str,
当前Flask程序所在的包(模块)名字,传 __name__ 就可以 其可以决定 Flask 在访问静态文件时查找的路径

static_url_path: t.Optional[str] = None,
静态文件访问路径,可以不传,默认为:/ + static_folder

static_folder: t.Optional[t.Union[str, os.PathLike]] = "static",
静态文件存储的文件夹,可以不传,默认为 static

template_folder: t.Optional[str] = "templates",
模板文件存储的文件夹,可以不传,默认为 templates

默认参数情况下

app = Flask(__name__)|---static		|--- 1.png|---templates		|--- index.html|---helloword.py访问127.0.0.1:5000:static/1.png
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

修改参数的情况下

from flask import Flaskapp = Flask(__name__, static_url_path='/Flyme awei', static_folder='static')  # 初始化 Flask项目的服务@app.route('/')def hello_world():  # put application's code here    return 'Hello World!'if __name__ == '__main__':    # IP:0.0.0.0 代表当前计算机所有的IP地址,    # port:端口默认是 5000    # flask的debug模式:把错误信息显示到页面中    app.run(host='0.0.0.0', port=5000, debug=True)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

debug源文件

app = Flask(__name__, static_url_path='/Flyme awei',static_folder='static')----|---folder_param # 此处目录名变化 | |--- 1.png |---helloworld.py 访问127.0.0.1:5000/static_url_path/1.png才可以访问到图片
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

app.run参数
可以指定运行的主机IP地址,端口,是否开启调试模式

app.run(host="0.0.0.0", port=5000, debug = True) IP:0.0.0.0 代表当前计算机所有的IP地址
  • 1
  • 2
  • 3

关于DEBUG调试模式

1.程序代码修改后可以自动重启服务器
2.在服务器出现相关错误的时候可以直接将错误信息返回到前端进行展示

6、应用程序配置参数

应用程序配置参数设置的是一个Web应用工程的相关信息,比如:

  • 数据库的连接信息

  • 日志的配置信息

  • 自定义的配置信息

注意:这样可以集中管理项目的所有配置信息
Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作。

1.从配置对象中加载

app.config.from_object(DefaultConfig)

# -*- coding: utf-8 -*-# @File  : 02应用程序参数.py# @author: Flyme awei # @email : 1071505897@qq.com# @Time  : 2022/7/26 0:25from flask import Flaskclass DefaultConfig(object):    """默认Web项目配置"""    USER = 'Flyme awei'    PWD = 'root'app = Flask(__name__)app.config.from_object(DefaultConfig)@app.route('/')def index():    print(app.config['USER'])    print(app.config["PWD"])    return "hello word!"if __name__ == '__main__':    app.run(host='0.0.0.0', port=8080)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30


这样的好处是可以在项目开发中来继承和重写:

class MyDevelopmentConfig(DefaultConfig): 	DEBUG=True
  • 1
  • 2

2.从配置文件中加载

新建一个配置文件setting.py ,这个文件中的内容是: 参数名=参数值 ,比如:PWD = 'root'

app.config.from_pyfile('setting.py')

# -*- coding: utf-8 -*-# @File  : setting.py.py# @author: Flyme awei # @email : 1071505897@qq.com# @Time  : 2022/7/26 0:38# Web 项目的整个配置文件USER = 'Flyme awei'PWD = 'root'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
# -*- coding: utf-8 -*-# @File  : 02从配置对象中加载.py# @author: Flyme awei # @email : 1071505897@qq.com# @Time  : 2022/7/26 0:25from flask import Flaskapp = Flask(__name__)app.config.from_pyfile('setting.py')@app.route('/')def index():    print(app.config['USER'])    print(app.config["PWD"])    return "hello word!"if __name__ == '__main__':    app.run(host='0.0.0.0', port=8080)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

3.从环境变量中加载

先配置环境变量

Flask使用环境变量加载配置的本质是通过环境变量值找到配置文件,再读取配置文件的信息,其使用方式为

app.config.from_envvar('环境变量名')

环境变量的值为配置文件的绝对路径
先在终端中执行如下命令

export PROJECT_SETTING='~/setting.py

# -*- coding: utf-8 -*-# @File  : 04从环境变量中加载.py# @author: Flyme awei # @email : 1071505897@qq.com# @Time  : 2022/7/26 0:50from flask import Flaskapp = Flask(__name__)app.config.from_envvar('SETTING_PATH', silent=True)@app.route('/')def hello_word():    print(app.config['USER'])    print(app.config['PWD'])    return 'hello word'if __name__ == '__main__':    app.run('0.0.0.0', 8888, debug=True)    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

silent参数:
False 表示不安静的处理,没有值时报错通知,默认为False
True 表示安静的处理,即时没有值也让Flask正常的运行下去

4.从Pycharm中的运行时设置环境变量的方式加载

使用非常少

5.企业项目开发常用的方式

使用工厂模式创建Flask app,并结合使用配置对象与环境变量加载配置

  • 使用配置对象加载默认配置
  • 使用环境变量加载不想出现在代码中的敏感配置信息
def create_flask_app(config): 	""" 创建Flask应用 :param config: 配置对象 :return: Flask应用 """ 	app = Flask(__name__) 	app.config.from_object(config)	# 从环境变量指向的配置文件中读取的配置信息会覆盖掉从配置对象中加载的同名参数	app.config.from_envvar("PROJECT_SETTING", silent=True) 	return app class DefaultConfig(object): 	"""默认配置""" 	USER = 'ROOT' class DevelopmentConfig(DefaultConfig): 	DEBUG=True # app = create_flask_app(DefaultConfig)app = create_flask_app(DevelopmentConfig) @app.route("/") def index(): 	print(app.config['USER']) 	return "hello world"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发