当前位置:网站首页>Flask框架的搭建及入门
Flask框架的搭建及入门
2022-08-02 14:01:00 【czy1206527605】
预备(虚拟环境的搭建)
cd venv/Scripts
.\activate 进入虚拟环境
cd ../../
deactivate.bat 退出虚拟环境
pip install -r req_new.txt 指定文件下载
一.Flask搭建
所需下载的内部插件
快捷下载(将以下包放入txt文件中,加入到flask根目录下
运行 pip install -r ***.txt)
Flask==1.1.4
Flask-Caching==1.10.1
Flask-Cors==3.0.10
Flask-Migrate==2.7.0
Flask-RESTful==0.3.9
Flask-Script==2.0.6
Flask-SQLAlchemy==2.5.1
MarkupSafe==2.0.1
PyJWT==2.3.0
PyMySQL==1.0.2
qiniu==7.6.0
redis==4.2.2
二.Flask入门
Ss2.flask的必要元素
<1>.flask基本框架
#1
(导包)
from flask import Flask
#2
(实例化Flask对象)
app = Flask(__name__)
(定义函数及其路由)
@app.route("/hello")
def hello():
return "hello world"
#3
(运行)
if __name__ == '__main__'
app.run()
<2> 从对象中加载配置文件
- 在目录settings中创建配置文件 config.py
class DefaultConfig:
# 属性名字 必须全部大写
NAME = "zhangsan"
DEBUG = True
- 根目录下创建app.py文件
from flask import Flask
from settings.config import DefaultConfig
app = Flask(__name__)
app.config.from_object(DefaultConfig) # 从对象中加载配置
print(app.config)
if __name__ == '__main__':
app.run()
注意!!!
此时运行代码会config到以下信息
DEBUG方法为开发者模式,设置成True可使运行自动刷新
<3> 从文件中加载配置文件
- 根目录下创建setting.py
随意写入参数
AGE="18"
- 根目录下创建app.py文件
from flask import Flask
from settings.config import DefaultConfig
app = Flask(__name__)
app.config.from_pyfile('setting.py') # 从文件中加载配置
print(app.config)
if __name__ == '__main__':
app.run()
<4> 从环境变量中加载配置文件
暂时没有掌握
三.设计模式简单导入
1.根目录下创建forest.py文件
class Animal():
def do_say(self):
pass
class Cat(Animal):
def do_say(self):
print("miaomiao")
class Dog(Animal):
def do_say(self):
print("wangwang")
class Forest():
def say(self, animal_type):
eval(animal_type)().do_say()
if __name__ == '__main__':
a = input("请输入输入的动物类型: Cat or Dog")
print("接收到的数据为:", a)
Forest().say(a)
2.工厂模式创建APP
在根目录创建create_app()
from flask import Flask
# 创建flask对象
def create_app():
flask_app = Flask(__name__)
print("我被调用了")
return flask_app
同级目录下创建app.py调用
from create_app import create_app
app = create_app()
if __name__ == "__main__":
app.run()
四.路由的定义
路由的基本格式
@app.route("/hello",methods=["get","post"],endpoint="aaa")
def hello():
return "hello"
- url 路由路径
- methods 请求方法
- endpoint 别名(可有可无)
通过url-for 方法找到路由别名endpoint
@app.route("/path")
def get_path():
u = url_for("aaa")
print(u)
return u
边栏推荐
- php开源的客服系统_在线客服源码php
- Interview | with questions to learn, Apache DolphinScheduler Wang Fuzheng
- 理解TCP长连接(Keepalive)
- HALCON: 内存管理(Memory Management)
- 面试官:可以谈谈乐观锁和悲观锁吗
- ftp常用命令详解_iftop命令详解
- Sentinel源码(五)FlowSlot以及限流控制器源码分析
- 政策利空对行情没有长期影响,牛市仍将继续 2021-05-19
- 网络安全第四次作业
- GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)‘ failed
猜你喜欢
Differences and concepts between software testing and hardware testing
方舟生存进化淘宝面板服务器是怎么一回事?
Interview | with questions to learn, Apache DolphinScheduler Wang Fuzheng
瑞吉外卖笔记——第05讲Redis入门
CVE-2020-27986 (Sonarqube sensitive information leak) vulnerability fix
【ONE·Data || 排序入门】
The world's largest Apache open source foundation is how it works?
未来的金融服务永远不会停歇,牛市仍将继续 2021-05-28
redis分布式锁和看门狗的实现
Sentinel源码(四)(滑动窗口流量统计)
随机推荐
关于C#使用DateTime数据的细节
logback源码阅读(二)日志打印,自定义appender,encoder,pattern,converter
RHCE第一天作业
网络安全第一次作业
瑞吉外卖笔记——第05讲Redis入门
Sentinel源码(二)入口方法分析
How to solve 1045 cannot log in to mysql server
二分查找 && 树
Diodes and their applications
WiFi Association & Omnipeek Packet Capture Analysis
RKMPP API安装使用总结
不精确微分/不完全微分(Inexact differential/Imperfect differential)
打破文件锁限制,以存储力量助力企业增长新动力
Cloin 控制台乱码
监管再次重拳出击,后市如何?2021-05-22
C# 编译错误:Compiler Error CS1044
方舟生存进化淘宝面板服务器是怎么一回事?
C# using 使用方法
How to solve mysql service cannot start 1069
配置zabbix自动发现和自动注册。