学习笔记 | Flask学习从入门到放弃(1)
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 第一的程序
1 | from flask import Flask //导入Flask类 |
1.2.1 创建程序实例
- 导入Flask类,实例化这个类
1.2.2 注册路由
- 为函数附加app.route()装饰器,并传入URL规则作参数
- 可以为一个视图函数绑定多个URL
1 |
|
- 动态URL:使用‘<变量名>’表示变量
1 |
|
- URL中包含变量时,如果用户访问的URL中没有包含变量,则会返回错误,所以可以设置装饰器使用defaults参数设置变量的默认值
1 |
|
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'
,也可以保存在文件中 - 多个设置:
1 | app.config.update{ |
- 获取:
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命令:
1 |
|
然后在控制台输入:flask hello
1.9 模板和静态文件
- 项目结构示例:templates中存放html文件,static中存放css和js文件
1 | hello/ |
1.10 Flask与MVC框架
- MVC框架最初是设计桌面程序的,在MVC框架中,程序被分成了三个组件:数据处理(Model),用户界面(View),交互逻辑(Controller)
- 严格来说Flask不是MVC架构的框架
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Justlovesmile's BLOG!
评论