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根本事务,快速呼应客户端推送过来的拜访恳求。Jmja2库支撑自动HTML搬运功用,能够很好操控外部黑客的脚本攻击。体系运转速度很快,页面加载进程会将源码进行编译构成python字节码,然后完成模板的高效运转;模板承继机制能够对模板内容进行修改和维护,为不同需求的用户供给相应的模板。现在Python的web结构有很多。除了Flask,还有ojango、Web2py等等。其间Diango是现在Python的结构中运费用最高的。但是Django好像java的EJB(EnterpriseJavaBeansJavaEE服务器端组件模型)多被用于大型网站的开发,但关于大多数的小型网站的开发,运用SSH(Struts+Spring+Hibemat的一个JavaEE集成结构)就能够满意,和其他的轻量级结构相比较,Flask结构有很好的扩展性,这是其他Web结构不可代替的。
聊聊flask框架是前端还是后端
试验原理:
1.什么是flask
Flask是一个运用Python编写的轻量级Web应用框架,其WSGI东西采用Werkzeng,模板引擎运用Jinja2。Flask与Django之间的差异便是Django将一切的拓展功用悉数会集在了一同,因而其占有内存较多,而Flask作为一个轻量级的框架,经过拓展或者python的库来添加功用,因而占有的内存小。需求什么,导入什么。
而且flask基于python言语,对有必定python根底的开发者非常友爱。
2.Flask根底知识
a.Flask目录结构:
关于一个项目,flask关于项目文件的命名具有必定的要求。
在工作目录下必定要有两个文件夹和一个文件,其中图片,视频,css代码,js代码,icon等静态的资源放在static文件夹下(姓名必定不能弄错),css代码要新建一个css目录并放在该目录下,js代码要新建一个js目录并放在该目录下。
之后,关于html文件,要放在templates文件夹下。最后,运转的.py文件默许命名为app.py以及wsgi.py。
总归如下:
b.Flask根底用法:
首要,Flask在python中是作为类封装好的,因而要先运用import来导入flask类,其次便是要实例化类,运用app=Flask(name)能够实例化一个flask类。之后,Flask开发的基本模式便是在程序中将一个视图函数分配一个URL,当用户访问一个URL时,系统就会执行这个URL对应的视图函数,然后将返回值烘托到浏览器上。
将视图函数赋予url需求运用@route(“url”)装修器,url为要访问的资源页面,默许状况下在根目录,也便是“/”,然后在这个装修器后界说视图函数。
视图函数的返回值,能够直接刺进html代码,也能够运用render_template()函数来指定html文件(该文件必定要放在templates文件夹下),也能够运用redirect函数将其重定向到另一个视图函数对应的url。
c.如安在html中刺进flask代码,怎么将flask中的数据传入html中?
在html中,运用变量以及调用函数要运用{{变量名}}来指定flask代码中的变量,Flask的python句子要运用{%%}来刺进,如:
留意,if句子后边要有endif,for句子后边要有endfor。
怎么传输数据:
能够运用render_template()函数,第一个参数为要烘托的html文件,后边的多个参数为html中的变量名=py中的变量名。
d.Flask中的数据库flask_sqlalchemy
运用这个数据库,首要需求指定db文件的工作目录,
WIN=sys.platform.startswith(‘win’)ifWIN:
prefix=’sqlite:///’else:
prefix=’sqlite:////’app.config[‘SECRET_KEY’]=os.getenv(‘SECRET_KEY’,’secretstring’)
app.config[‘SQLALCHEMY_DATABASE_URI’]=os.getenv(‘DATABASE_URL’,prefix+os.path.join(app.root_path,’data.db’))
app.config[‘SQLALCHEMY_TRACK_MODIFICATIONS’]=False
这些装备的意图便是将db文件命名为data.db然后将db文件的生成以及工作目录都指定到根目录下。
因为数据库在python中也是一个目标,因而也需求实例化,运用db=SQLAlchemy(app)实例化。
在flask_sqlalchemy中,一个表便是python中的一个类,因而,要界说表,就得界说一个类。
classbooks(db.Model):
id=db.Column(db.Integer,primary_key=True)
book_id=db.Column(db.Integer)
book_name=db.Column(db.String(100))
classification=db.Column(db.String(20))
然后运用db.create_all()方式来在db文件中创立一个这样的表,然后实例化这个类,将这个类的目标作为一行添加到表中(db.session.add(Book)),然后再运用db.session.commit()提交更新,就能够完结一个数据的填入了,之后在运用类办法的query.all()就能够查询出一切的信息了。
e.怎么引证css文件:
html引证flask项目中的文件,只能运用url_for办法,而且因为这个是python函数,因而要用{{}}括起来,然后有两个参数,第一个参数代表这个文件是静态文件还是其他的文件,因而是”static”,第二个参数代表的是以一个参数为根目录的css文件的路径信息。代码如下:
<linkrel=”stylesheet”href=”{{url_for(‘static’,filename=’css/style.css’)}}”>
f.怎么运转以及开发flask程序:
首要,如果不想让环境之间相互影响,建议运用pipenv来办理包,首要运用pipenvinstall来安装需求的包,如果没有对应的装备文件,会生成两个装备文件,Pipfile以及Pipfile.lock,以后运用pipenvinstall的时分,相关包的文件就会主动存储在Pipfile和.lock当中,下次到新环境时运用pipenvinstall就能够主动下载。之后,运用pipenvshell来创立一个新的虚拟环境。然后运用flaskrun命令就能够跑起来了。
如果要进入开发者模式的话,能够手动树立一个.flaskenv文件,个app.py文件同目录,然后写上FLASK_ENV=development一句话就行了。
进入开发者模式后,每次修正完代码只要将浏览器硬改写后就能够实时显现修正完的信息,不用重启程序,而且错误之后会进入了Jinja2供给的debug页面,里边详细的说了错误的信息(有时)。
试验内容:
本次试验需求运用python读取book.txt中的内容,将其运用某种数据结构化存储,然后以表格的方式显现在web的页面上。
试验过程及详细完成:
1.读取book.txt中的数据
界说一个函数read_file(),运用python中open办法翻开文件,然后运用f.readlines将文件一行一行以列表的方式读入,去除\n以及一些奇怪的字符后运用split获得包含一切信息的二维数组。
代码以及成果如下:
2.创立数据库,将书本信息存入到数据库中。
首要是实例化数据库,之后修正装备文件,这个之前在基本原理中现已讲了,代码如下:
创立一个书本的表,该表一共有三个字段,分别为书本序号,书本名,书本分类。
然后创立视图函数,将读到每一本图书的信息作为参数将books类实例化,然后加入到表中。
3.编写前端html,烘托html而且将书本信息传入到html中。
a)在视图函数中调用查询函数,将书本信息从数据库中查询出来,然后运用render_template()函数烘托html而且将获得的books信息传入html文件中:
b)前端树立一个表格,然后运用for循环不断地添加表格的行
该代码运用for循环不断读取books中的图书信息,然后生成表格的一列。
p.s当然,这其中运用了css文件调整了样式,这里不细说了。
最后的试验成果如下:
心得体会:
1.在创立数据库的时分,要先调用create_all()才能够从头创立现已界说好的表类,否则的话db.session.submit()会报错。
2.在html中运用for句子,能够快速的构成重复的代码,使代码愈加简洁,而且能够根据数据库动态更新。
3.这次试验能够说是简略编写了一下flask的前后端,前端简略运用了html和css代码,后端简略运用了数据库,而且完成了前后端的交互,还是很不错的。
以上就是“flask框架是前端还是后端”的详细内容,想要了解更多Python教程欢迎持续关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/10190/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料