当前位置:网站首页>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、直接导入外层包目录会报错
边栏推荐
- Exception(异常) 和 Error(错误)区别解析
- 13.< tag-动态规划和回文字串>lt.647. 回文子串 + lt.516.最长回文子序列
- 1069 微博转发抽奖 (20 分)(C语言)
- Alienware上线首个数字时装AR试穿体验
- Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)
- Redis6学习笔记
- Interface test framework combat (1) | Requests and interface request construction
- [Fine talk] Using native js to implement todolist
- 2022暑假牛客多校联赛第一场
- 设计模式——组合模式、享元模式(Integer缓存)(结构型模式)
猜你喜欢
IO process thread -> thread -> day5
安装IIS服务(Internet信息服务(Internet Information Services,简写IIS,互联网信息服务)
MCM box model modeling method and source analysis of atmospheric O3
Two ways to simulate multi-user login in Jmeter
Where is the value of testers
PotPlayer实现上班摸鱼电视自由
High availability, two locations and three centers
MySql数据库
Kotlin-Flow常用封装类:StateFlow的使用
Harmony OS Date ano UI 】 【 】 the basic operation
随机推荐
Flink state
如何不耍流氓的做运维之-SHELL脚本
UV decomposition of biotin - PEG2 - azide | CAS: 1192802-98-4 biotin connectors
idea使用@Autowired注解爆红原因及解决方法
设计模式——组合模式、享元模式(Integer缓存)(结构型模式)
idea uses @Autowired annotation to explain the reasons and solutions
Get the Ip tool class
Harmony OS ets ArkUI 】 【 】 the development basic page layout and data connection
1079 延迟的回文数 (20 分)
Unity2D horizontal board game tutorial 6 - enemy AI and attack animation
Odps temporary query can write SQL, turned out to a named?
typescript40-class类的保护修饰符
反射注解基础
Concepts and Methods of Exploratory Testing
Detailed explanation of MOSN reverse channel
Two ways to simulate multi-user login in Jmeter
Peptides mediated PEG DSPE of phospholipids, targeted functional materials - PEG - RGD/TAT/NGR/APRPG
Apache DolphinScheduler版本2.0.5分布式集群的安装
JS bottom handwriting
PotPlayer实现上班摸鱼电视自由