前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记 | Flask学习从入门到放弃(1)

学习笔记 | Flask学习从入门到放弃(1)

作者头像
Justlovesmile
发布2021-12-14 09:19:59
1.6K0
发布2021-12-14 09:19:59
举报
文章被收录于专栏:云+分享

Flask web开发学习笔记之初识Flask

  • Flask是使用python编写的Web微框架
  • Flask有两个主要依赖:
    • WSGI(Web Server Gateway Interface,Web服务器网关接口)
    • Jinja2模块引擎

1.1搭建开发环境

1.1.1 Pipenv工作流

  • 可看作是pip加强版,是pip和pipfile和virtualenv的结合体,使得包安装,包依赖管理和虚拟环境管理更加方便
  • python3.4及以上版本自带pip工具,使用 $ pip --version 查看已安装版本
  • 安装pipenv: $ pip install pipenv
  • 选择并进入工作目录,创建虚拟环境: $ pipenv install
  • 虚拟环境文件夹的目录名称的形式是’当前项目目录名+一串随机字符’
  • 显式激活虚拟环境: $ pipenv shell ,使用exit退出
  • 非显式激活虚拟环境: $ pipenv run python xxxx.py
  • 管理依赖(会使用到的python包),查看Pipfile和Pipfile.lock文件,或者输入 pipenv graph或者在虚拟环境中输入 pip list

1.1.2 安装Flask

  • 在虚拟环境中安装Flask: $ pipenv install Flask

1.1.3 集成开发环境IDE

  • pycharm
  • 点击File → Setting → Project:XXX → Project Interpreter → Add local Python Interpreter → Virtualenv Environment → Existing environment → (输入 $ pipenv --venv 查看对应虚拟环境路径,找到其下的python.exe文件,linux/MacOS在bin,windows在Scripts)
  • 推荐使用浏览器 Firefox 和 Chorme

1.2 第一的程序

代码语言:javascript
复制
from flask import Flask //导入Flask类
app=Flask(__name__)     //实例化这个类

@app.route('/')			//注册路由
def index():			//视图函数
	return '<h1>Hello World!</h1>'

if __name__ == "__main__":
	app.run(debug=True)

1.2.1 创建程序实例

  • 导入Flask类,实例化这个类

1.2.2 注册路由

  • 为函数附加app.route()装饰器,并传入URL规则作参数
  • 可以为一个视图函数绑定多个URL
代码语言:javascript
复制
@app.route('/hi')
@app.route('/hello')
def say():
	return '<h1>hello</h1>'
  • 动态URL:使用‘<变量名>’表示变量
代码语言:javascript
复制
@app.route('/greet/<name>')
def greet(name):
	return '<h1>hello, %s!</h1>' % name
  • URL中包含变量时,如果用户访问的URL中没有包含变量,则会返回错误,所以可以设置装饰器使用defaults参数设置变量的默认值
代码语言:javascript
复制
@app.route('/greet',defaults={'name':'programmer'})
@app.route('/greet/<name>')
def greet(name):
return '<h1>Hello, %s!</h1>' % name

//等价于
@app.route('/greet')
@app.route('/greet/<name>')
def greet(name='programmer'):
return '<h1>Hello, %s!</h1>' % name

1.3 启动开发服务器

1.3.1 运行

  • $ flask run
  • 自动发现程序实例:(Linux/macOS) export FlASK_APP=XXX 或(Windows)set FlASK_APP=XXX ,但是当我在Windows使用powershell时我输入set FLASK_APP=appname.py时,出错了,解决办法是输入env:FLASK_APP="appname.py"
  • 管理环境变量: 安装python-dotenv,pip install python-dotenv,在项目根目录下创建两个文件:.env(存储敏感信息的环境变量)和.flaskenv(存储与flask相关公开环境变量),每行一个,以#为注释的键值对
  • 使用pycharm运行,需要配置一系列变量…..

1.3.2 更多启动选项

  • 设置主机地址:flask run --host=0.0.0.0
  • 设置端口: flask run --port=8000
  • 设置开发环境:可在.flaskenv文件中写入FALSK_ENV=development,在开发环境下,调试模式自动开启,通过FALSK_DEBUG控制是(=1)否(=0)开启.
  • 调试模式下,会激活调试器和重载器,调试器允许在错误页面输入PIN码调试,重载器可以检测文件变动,重启服务器。
  • 内置stat重载器性能一般,可以使用watchdog,pipenv install watchdog --dev,添加–dev的目的是声明为开发依赖。

1.4 shell

  • python shell与flask shell

1.5 Flask扩展

  • 即使用Flask提供的API接口编写的Python库

1.6 项目配置

  • 配置变量都是通过Flask对象的app.config属性作为统一的接口来设置和获取
  • 单个设置:app.cofig['ADMIN_NAME']='xiaoming',也可以保存在文件中
  • 多个设置:
代码语言:javascript
复制
app.config.update{
	TESTING=True,
	SECRET_KEY='XXXXXXXXXXX'
}
  • 获取:value=app.config['ADMIN_NAME']

1.7 URL与端点

  • 使用Flask提供的url_for()函数获取URL,第一个参数是端点名(默认是视图函数名),其后还可以加动态参数,形如:name=’Jack’,得到的URL是相对的URL(内部的URL)

1.8 Flask命令

  • flask run/flask shell/flask –help等等
  • 注册flask命令:
代码语言:javascript
复制
@app.cli.command()
def hello():
	click.env('Hello , Human!')

然后在控制台输入:flask hello

1.9 模板和静态文件

  • 项目结构示例:templates中存放html文件,static中存放css和js文件
代码语言:javascript
复制
hello/
   - templates/
   - static/
   - app.py

1.10 Flask与MVC框架

  • MVC框架最初是设计桌面程序的,在MVC框架中,程序被分成了三个组件:数据处理(Model),用户界面(View),交互逻辑(Controller)
  • 严格来说Flask不是MVC架构的框架
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1搭建开发环境
    • 1.1.1 Pipenv工作流
      • 1.1.2 安装Flask
        • 1.1.3 集成开发环境IDE
        • 1.2 第一的程序
          • 1.2.1 创建程序实例
            • 1.2.2 注册路由
            • 1.3 启动开发服务器
              • 1.3.1 运行
                • 1.3.2 更多启动选项
                • 1.4 shell
                • 1.5 Flask扩展
                • 1.6 项目配置
                • 1.7 URL与端点
                • 1.8 Flask命令
                • 1.9 模板和静态文件
                • 1.10 Flask与MVC框架
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档