flask(flask框架教程)

Flask是一个运用Python编写的轻量级Web运用框架。其WSGI东西箱采用Werkzeug,模板引擎则运用Jinja2。Flask运用BSD授权。

Flask也被称为“microframework”,因为它运用简单的中心,用extension添加其他功能。Flask没有默认运用的数据库、窗体验证东西。
Flask是一个轻量级的可定制结构,运用Python语言编写,较其他同类型结构更为灵敏、轻便、安全且容易上手。它能够很好地结合MVC形式进行开发,开发人员分工合作,小型团队在短时间内就能够完成功用丰厚的中小型网站或Web服务的完成。另外,Flask还有很强的定制性,用户能够根据自己的需求来添加相应的功用,在坚持中心功用简略的一起完成功用的丰厚与扩展,其强壮的插件库能够让用户完成个性化的网站定制,开宣布功用强壮的网站。
Flask是现在非常盛行的web结构,采用Python编程语言来完成相关功用。它被称为微结构(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微结构中的“微”是指Flask旨在坚持代码简练且易于扩展,Flask结构的主要特征是中心构成比较简略,但具有很强的扩展性和兼容性,程序员能够运用Python语言快速完成一个网站或Web服务。一般情况下,它不会指定数据库和模板引擎等目标,用户能够根据需要自己选择各种数据库。Flask本身不会提供表单验证功用,在项目实施进程中能够自由配置,从而为应用程序开发提供数据库抽象层根底组件,支撑进行表单数据合法性验证、文件上传处理、用户身份认证和数据库集成等功用。Flask主要包括Werkzeug和Jinja2两个中心函数库,它们别离负责事务处理和安全方面的功用,这些根底函数为web项目开发进程提供了丰厚的根底组件。Werkzeug库非常强壮,功用比较完善,支撑URL路由恳求集成,一次能够响应多个用户的拜访恳求;支撑Cookie和会话办理,经过身份缓存数据树立长久连接关系,并进步用户拜访速度;支撑交互式Javascript调试,进步用户体会;能够处理HTTP基本事务,快速响应客户端推送过来的拜访恳求。Jinja2库支撑自动HTML转移功用,能够很好控制外部黑客的脚本进犯。体系运转速度很快,页面加载进程会将源码进行编译形成python字节码,从而完成模板的高效运转;模板继承机制能够对模板内容进行修改和保护,为不同需求的用户提供相应的模板。现在Python的web结构有许多。除了Flask,还有django、Web2py等等。其中Diango是现在Python的结构中运用度最高的。可是Django如同java的EJB(EnterpriseJavaBeansJavaEE服务器端组件模型)多被用于大型网站的开发,但关于大多数的小型网站的开发,运用SSH(Struts+Spring+Hibernat的一个JavaEE集成结构)就能够满足,和其他的轻量级结构相比较,Flask结构有很好的扩展性,这是其他Web结构不行替代的。

flask

flask框架教程

之前做的2个flask结构写的项目代码,因为自己首要担任事务逻辑的API那一块,没有整个结构从头到尾实践一遍,借这次回看,写一个很简单的小项目并记录下来,作为自己对flask结构了解思路的整理和笔记的概括。
1.前期预备
下载装置python(我个人的习气是用python3)和mysql数据库。
2.目录结构的拟定
首先flask结构是没有固定的项目目录安排结构的,所以咱们自己拟定出自己风格习气的目录结构。依据需要寄存的文件类型,先简单的定为以下几个目录:
3.代码编写
3.1从apps\__init__.py里入手,创立一个flask实例,并对其进行属性参数的设置:
#-*-coding:utf8-*-fromflaskimportFlaskimportosfromdatetimeimporttimedeltafrom.app_login.viewsimportlogin_bluefrom.app_manager.viewsimportmanager_bluedefcreate_app():
app=Flask(__name__)#创立flask实例app.register_blueprint(login_blue)#注册蓝图(路由)app.register_blueprint(manager_blue)
app.config.update(SECRET_KEY=os.urandom(24))#设置密钥app.permanent_session_lifetime=timedelta(minutes=24*60)returnapp#回来设置完参数的flask实例
3.2运转入口:run.py,运转flask实例。
#-*-coding:utf8-*-fromappsimportcreate_appfromconfimportconf
app=create_app()#获取flask实例if__name__==’__main__’:#发动服务;是否开启调试形式、监听IP和端口在conf.py里设置app.run(debug=conf.DEBUG,port=conf.PORT,host=conf.HOST)
3.3装备参数:conf.py。依据出产、测试、开发三种环境设置不同参数,具体的参数值依据自己装置mysql时设定的来填写。
#-*-coding:utf8-*-importosclassConfig(object):
DEBUG=True#flask是否开启debug形式DB_NAME=’danni’#数据库名称DB_HOST=’127.0.0.1’#数据库IPDB_PORT=3306#数据库端口(mysql默许为:3306)DB_UN=”#数据库账号名DB_PW=”#数据库暗码classProductionConfig(Config):”””出产环境”””DEBUG=False#flask是否开启debug形式classTestingConfig(Config):”””测试环境”””DB_HOST=’127.0.0.1’#数据库IP地址R_HOST=’127.0.0.1’#RedisIP地址classDevelopConfig(Config):”””开发环境”””PORT=8082#flask端口;flask默许监听本地127.0.0.1:5000HOST=’0.0.0.0’#flask绑定ip;0.0.0.0表明监听一切地址#主动判断环境出产configifos.path.exists(‘production.conf’):
conf=ProductionConfig()
conf_ver=’conf.ProductionConfig’conf_env=u’出产环境’elifos.path.exists(‘test.conf’):
conf=TestingConfig()
conf_ver=’conf.TestingConfig’conf_env=u’测试环境’else:
conf=DevelopConfig()
conf_ver=’conf.DevelopConfig’conf_env=u’开发环境’
3.4数据库衔接的参数设置:libs\db.py
#-*-coding:utf8-*-importpymysqlfromconfimportconf#衔接数据库db=pymysql.connect(host=conf.DB_HOST,port=conf.DB_PORT,user=conf.DB_UN,passwd=conf.DB_PW,db=conf.DB_NAME)#建立游标cursor=db.cursor(cursor=pymysql.cursors.DictCursor)#回来{}或[{},{},…]#cursor=db.cursor()#回来()或((),(),…)
3.5设置完这些参数后,进入事务逻辑代码:apps\app_manager;分为3部分:__init__.py担任初始化变量等,model.py担任数据库数据处理等,views.py担任不同api接口的逻辑;事务场景:现有一个girls表,操控台端要获取表内一切用户的%

© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章