当前位置:网站首页>Flask的简单介绍及使用方法简介
Flask的简单介绍及使用方法简介
2022-08-03 05:10:00 【중둑【上瘾】】
一、什么是flask?
Falsk是由python开发的轻量的web框架,小巧,灵活,一个脚本就可以启动一个web项目, 开发的难度比较大,flask好多的模块是按照django的思路开发的。和flask类似的框架还有web.py,
那么,flask和django有什么区别呢?
详细区别可参照https://blog.csdn.net/tulan_xiaoxin/article/details/79132214
Django: 大而全,有一套完整的框架,但是耦合性高。Auth,Permission,admin基本没用
开发快,符合MVC模式
Flask: 微框架,很小巧。一个脚本就可以启动一个web项目,需要哪些功能,自己装。需要熟悉MVC模式.
二、Flask部署
1、在anaconda中创建虚拟环境
conda create -n FlaskPath python=3.6.2
2、安装flask框架
安装flask模块
3、启动程序
自定义文件夹,在当前目录下创建py文件就可以直接启动
from flask import Flask
app = Flask(__name__) #在当前文件下创建应用
@app.route("/") #装饰器,url,路由
def index(): #试图函数
return "hello world"
@app.route("/say_hello/<name>") #装饰器,url,路由
def say_hello(name): #试图函数
return "hello world,I am your friend %s"%name
if __name__ == "__main__":
app.run() #运行app
运行结果如下:
在使用flask时,需要大量用到单例模式
单例模式:单实例模式,指在一个程序当做,某个类只能被实例化一次,可以方便的保持 实例对象访问的一致性
三、开始flask项目
模板和静态文件
Flask默认认为当前目录下的templates是模板文件目录,当前目录下的static是静态文件目录,flask的模板渲染采用了jinja2模块来进行渲染,jinja2模块是模仿django编写的一个模板渲染的三方模块,通常用于HTML的渲染,也会被用在动态配置文件的渲染上。
数据库模型
Sqlalchemy是python三方的ORM数据库映射模块,flask对sqlalchemy模块进行了第二次封装。在当前版本的flask我们使用sqlalchemy需要安装flask-sqlalchemy
1、导入数据库模块
from flask_sqlalchemy import SQLAlchemy
2、基于应用进行sqlalchemy的配置
- v实例化db对象
db = SQLAlchemy(app)
定义数据模型
class Student(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(32))
age = db.Column(db.Integer)
gender = db.Column(db.String(32))
classes = db.Column(db.String(32))
def __repr__(self):
return self.name
db.create_all()
实例化db对象
db = SQLAlchemy(app)
定义数据模型
class Student(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(32))
age = db.Column(db.Integer)
gender = db.Column(db.String(32))
classes = db.Column(db.String(32))
def __repr__(self):
return self.name
db.create_all()SQLALCHEMY_DATABASE_URI
用于连接数据的数据库。例
如: sqlite:tmp/test.db mysql://username:[email protected]/db
SQLALCHEMY_BINDS
一个映射绑定 (bind) 键到 SQLAlchemy 连接 URIs 的字典。 更多的信息请参阅 绑定多个数据库。
SQLALCHEMY_ECHO
如果设置成 True,SQLAlchemy 将会记录所有 发到标准输出(stderr)的语句,这对调试很有帮助。
SQLALCHEMY_RECORD_QUERIES
可以用于显式地禁用或者启用查询记录。查询记录 在调试或者测试模式下自动启用。更多信息请参阅 get_debug_queries()。
SQLALCHEMY_NATIVE_UNICODE
可以用于显式地禁用支持原生的 unicode。这是 某些数据库适配器必须的(像在 Ubuntu 某些版本上的 PostgreSQL),当使用不合适的指定无编码的数据库 默认值时。
SQLALCHEMY_POOL_SIZE
数据库连接池的大小。默认是数据库引擎的默认值 (通常是 5)。
SQLALCHEMY_POOL_TIMEOUT
指定数据库连接池的超时时间。默认是 10。
SQLALCHEMY_POOL_RECYCLE
自动回收连接的秒数。这对 MySQL 是必须的,默认 情况下 MySQL 会自动移除闲置 8 小时或者以上的连接。 需要注意地是如果使用 MySQL 的话, Flask-SQLAlchemy 会自动地设置这个值为 2 小时。
SQLALCHEMY_MAX_OVERFLOW
控制在连接池达到最大值后可以创建的连接数。当这些额外的 连接回收到连接池后将会被断开和抛弃。
SQLALCHEMY_TRACK_MODIFICATIONS
如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。
注意:
1、模块不可以互相导入
2、模块不可以同名导入,
flask.py
from flask import Flask
Flask has no attribut “Flask”
3、直接导入外层包目录会报错
边栏推荐
- 接口测试框架实战(一) | Requests 与接口请求构造
- Super handy drawing tool is recommended
- 安装IIS服务(Internet信息服务(Internet Information Services,简写IIS,互联网信息服务)
- Benchmark 第一篇 了解Benchmark
- Power button 561. An array of split
- typescript40-class类的保护修饰符
- ModelArts第二次培训
- 集合框架知识
- Fluorescent marker peptides FITC/AMC/FAM/Rhodamine TAMRA/Cy3 / Cy5 / Cy7 - Peptide
- Interface testing framework of actual combat (2) | interface request assertion
猜你喜欢
Talking about GIS Data (5) - Geographic Coordinate System
junit总结
【Biotin Azide|cas:908007-17-0】Price_Manufacturer
MySql数据库
Modelarts第一次培训
【Harmony OS】【ARK UI】ets use startAbility or startAbilityForResult to invoke Ability
shell script loop statement
高效率科研神器——小软件、大能量
js实现一个 bind 函数
js implements a bind function
随机推荐
Interface testing framework combat (3) | JSON request and response assertion
阿里云对象存储oss私有桶生成链接
js garbage collection mechanism
UV decomposition of biotin - PEG2 - azide | CAS: 1192802-98-4 biotin connectors
Odps temporary query can write SQL, turned out to a named?
typescript47-函数之间的类型兼容性
VR全景展打造专属元宇宙观展空间
集合框架知识
typescript40-class类的保护修饰符
Flink state
Business table analysis - balance system
Secondary development of WinForm controls
ss-5.consul服务端+生产者+消费者
数据分析 第一篇
Where is the value of testers
idea使用@Autowired注解爆红原因及解决方法
odps的临时查询能在写sql的时候就给结果一个命名不?
MCM box model modeling method and source analysis of atmospheric O3
获取Ip工具类
typescript49-交叉类型