实验原理:
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文件的工作目录,
这些配置的目的就是将db文件命名为data.db然后将db文件的生成以及工作目录都指定到根目录下。
由于数据库在python中也是一个对象,因此也需要实例化,使用db = SQLAlchemy(app)实例化。
在flask_sqlalchemy中,一个表就是python中的一个类,因此,要定义表,就得定义一个类。
然后使用db.create_all()方式来在db文件中创建一个这样的表,然后实例化这个类,将这个类的对象作为一行添加到表中(db.session.add(Book)),然后再使用db.session.commit()提交更新,就可以完成一个数据的填入了,之后在使用类方法的query.all()就可以查询出所有的信息了。
e.如何引用css文件:
html引用flask项目中的文件,只能使用url_for方法,并且由于这个是python函数,因此要用{{}}括起来,然后有两个参数,第一个参数代表这个文件是静态文件还是其他的文件,因此是”static”,第二个参数代表的是以一个参数为根目录的css文件的路径信息。代码如下: