flask介绍

flask学习第一天

1. 框架的学习目标:

  • 如何编写视图
  • 如何处理请求
  • 如何构造响应

2.flask框架认识

  • 1 flask诞生于2010年
  • 2 flask 核心werkzeug和jinja2
  • 3 学习版本 flask 1.0.2

3 框架对比

  • 实际开发如何选择? 技术选型? 小说类型的网站?
    • 项目: 功能模块,技术特点,开发周期
      • 功能完善齐全,开发周期更快,中大型项目 选django
      • 功能完善齐全, 开发周期不是很急,中小型项目,高度定制,后续新功能研发bug修复,版本迭代比较频繁,选择flask
    • 个人: 框架的熟悉程度:
  • 总结: flask框架特点的轻量 简洁 扩展性强

环境安装

  • 虚拟环境: 操作系统内独立真实环境之外的python解释器和对应的依赖包.
  • 安装虚拟环境:virtualenv和virtualenvwrapper
  • 创建虚拟环境: mkvirtualenv -p python3 flask_py29
  • 移除虚拟环境:rmvirtualenv
  • 进入退出:workon / deactivate
输入workon sy29 提示没有命令
尝试安装pip install virtualenv		
pip install virtualenvwrapper
也可以运行以下代码
source virtualenvwrapper.sh
workon

  • 安装flask pip install flask==1.0.2

基本程序实现

  • 步骤
    • 导入flask类型
    • 创建程序实例对象
    • 定义路由和视图
    • 启动服务器
  • 项目名称和py文件名称,不要以关键字(模块名)命名,以免发生导包问题
	#	导入flask类型
	from flask import Flask
	#	创建程序实例对象
	app = Flask(__name__)   #必须是字符串
	#	定义路由和视图
	@app.route('/')
	def index():
    	return 'Hello World'
	#	启动服务器
	if __name__ == '__main__':
    app.run()

参数说明

  • Flask对象的初始化参数
    • 1 __name__参数:确定程序文件所在的位置,方便查找静态文件:(flask会默认创建静态路由);
    • 2 static_url_path表示url路径
    • 3 static_folder 表示文件夹名称:
  • 应用程序配置参数:类似于django中的settings.py文件flask中封装成config对象
    • 1 加载配置对象:app.config.from_object(配置的对象)
    • 2 加载配置文件:app.comfig.from_pyfile(文件名称 ),不是特指py文件,一行一行的定义配置信息,必须大写,不能使用对象;
    • 3 加载环境变量:app.config_envvar(环境变量名),环境变量值为配置文件的路径:
  • 特点:
    • 1 加载配置对象:需要定义类,使用简单,不安全, 可以封装,继承
    • 2 加载配置文件:定义方便,使用简洁,不安全 是固化的
    • 3 加载环境变量:相对复杂,更灵活,使用更安全
  • 工程中的使用:结论选择1和3;**
    • 基本配置使用配置对象加载,实现配置信息的复用,简化代码书写;
    • 其它配置使用环境变量加载
  • 设计模式:单例模式、工厂模式;
    • 工厂(汽车工厂):流水线生产,根据图纸的不同,生产不同规格类型的汽车;
    • 工厂模式:封装创建程序实例代码,可以根据参数的不同,生产不同环境下的app;
  • app.run()运行参数
    • host/port/debug

开发服务器启动方式

  • 新版flask框架推荐服务器的运行方式1.x版本之后

    • 终端启动,使用export启动,指定环境变量FLASK_app=文件名
    #表示定义环境变量
    export FLASK_APP = demo5_production
    export FLAS_ENV = develpoment/production
    #获取环境变量
    echo $FLASK_APP
    # 运行代码
    flask run 
    flask run -h 主机 -p 8000
    

路由

  • 从请求到响应:从一个地方到目标地址;

  • 查看路由方式:

    • 1 flask routes
    Endpoint  Methods  Rule
    --------  -------  -----------------------
    index     GET      /
    static    GET      /static/
    
    endpoint端点;表示视图函数名
    GET方法:表示http请求方式
    Rule规则:表示url路径
    
    • 2 url_Map
    Map(
     [
       index2019>,
      ' (GET, HEAD, OPTIONS) ->static>
       ]
       )
       # map 类 ,用来存储所有的路由映射;
       map表示映射;相当于django中的url列表
       # rule类 
      
       
      

    蓝图

    • 1 两个文件使用蓝图
    # 1.创建蓝图对象
    # 2.定义蓝图路由
    # 3.注册蓝图对象
    
    • 2.三个(多个)文件使用蓝图:需要把使用蓝图对象的文件,导入到创建蓝图对象的下面

    你可能感兴趣的:(web,开发,flask,Flask,框架)