当前位置:网站首页>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、直接导入外层包目录会报错
边栏推荐
- Talking about GIS Data (5) - Geographic Coordinate System
- UV decomposition of biotin - PEG2 - azide | CAS: 1192802-98-4 biotin connectors
- Response 重写设置返回值
- 1094 谷歌的招聘 (20 分)
- 建造者模式(Builder Pattern)
- 1054 求平均值 (20 分)
- Newifi路由器第三方固件玩机教程,这个路由比你想的更强大以及智能_Newifi y1刷机_smzdm
- 高效率科研神器——小软件、大能量
- Exception (abnormal) and Error (error) difference analysis
- 建立树形结构
猜你喜欢

快速上手 Mockito 单元测试框架

Shell conditional statement judgment

typescript39-class类的可见修饰符

Concepts and Methods of Exploratory Testing

Talking about GIS Data (5) - Geographic Coordinate System

typescript43-类型兼容性说明
![[Harmony OS] [ArkUI] ets development graphics and animation drawing](/img/36/f4c91f794b1321f11a24505d1617fb.png)
[Harmony OS] [ArkUI] ets development graphics and animation drawing

Unity2D horizontal board game tutorial 6 - enemy AI and attack animation

Build your own web page on raspberry pie (1)
网络流媒体下载的 10 种方法(以下载 Echo 音乐为例)
随机推荐
Shell conditional statement judgment
Bubble sort in c language structure
Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface
数字孪生园区场景中的坐标知识
Concepts and Methods of Exploratory Testing
第三次HarmonyOS培训
GIS数据漫谈(五)— 地理坐标系统
集合框架知识
技术分享 | 接口自动化测试中如何对xml 格式做断言验证?
Interface test framework combat (1) | Requests and interface request construction
shell脚本循环语句
阿里云对象存储oss私有桶生成链接
C# async and multithreading
在树莓派上搭建属于自己的网页(1)
Fluorescent marker peptides FITC/AMC/FAM/Rhodamine TAMRA/Cy3 / Cy5 / Cy7 - Peptide
JS bottom handwriting
13.
lt.647. Palindromic substring + lt.516. Longest palindrome subsequence odps的临时查询能在写sql的时候就给结果一个命名不?
Exception (abnormal) and Error (error) difference analysis
传说中可“免费白拿”的无线路由器 - 斐讯 K2 最简单刷 breed 与第三方固件教程