flask笔记(一)
1、第一个flask项目
# 首先你要安装flask这个模块 pip install flask # 安装好了之后,直接新建一个py文件,开始写最简单的flask项目了 from flask import flask app = flask(__name__) @app.router("/") def index(): return "helle flask" if __name__ == "__main__": app.run() # 开始flask的两种方式 # 方式一:直接右键鼠标,再点击运行这个py文件 # 方式二:cmd进入到当前的目录,执行 python py文件
2、flask 和 django的不同之处
''' 在python中,较出名的就是django和flask了 一说到django,大家都知道这是一个重量级的框架,flask呢就是一个轻量级的框架 django这个框架为我们准备了什么?(意思是不需要安装插件就能供我们使用,只写几点) 1、orm 2、模板语言 3、uwsgi 4、用户验证 5、邮件 6、缓存机制 7、admin后台管理系统 8、.... 而flask呢: 1、werkzeug 2、jiaja2 3、... 看了上面两个对比,就是应该知道为什么了吧,虽然flask自身提供的较少,但是flask有不少的插件供我们使用。 django优点:能快速的搭建一个大一点的项目,很多配置都帮你已经配置好了 缺点:可扩展性较flask而言差,比如orm必须用django的 flask优点:flask比较灵活,扩展性好,可随自己需求使用插件,适合快速搭建小一点的项目 缺点:写起来较复杂,因为很多需要自己去完善功能 不管是flask,django或者大部分其他web框架,都为你写好了符合wsgi协议的服务器,所以说我们使用框架不必再去关心客户端和服务端之间的通信了,只需专注于业务逻辑上的发开。 '''
3、flask框架中一些参数的解释(基于上面的1)
# 直接copy上面的代码吧 from flask import flask app = flask(__name__) @app.router("/") def index(): return "helle flask" if __name__ == "__main__": app.run()
from flask import flask 中的
flask
就是一个类。
app = flask(__name__)
生成一个flask的对象名为app,这就是类的实例化我们去看看flask需要传什么参数
import_name
,static_url_path=none
,static_folder='static'
,template_folder='templates'
,可以发现
就一个位置参数,其他的都是关键字参数,这些关键字参数都是有默认值的,所以我们传的参数__name__
肯定
是传给了import_name
了。
import_name
看名字大概意思是导入的名字,那么我们__name__
的值是__main__
对吧,因为当前这个py文件就是启动文件,flaks它会以当前模块所在的目录为总目录,如果当前这个模块不存在的话,那么就会以当前文件所在的目录为总目录。有什么用呢?再看后面
static_filder='static'
意思是静态文件存放的目录应该为static文件夹
template_folder='templates'
意思是模板文件存放的目录应该为templates文件夹
当然静态文件目录和模板文件目录你都可以修改,但是一般不会改,你改了的话,万一别人看你的项目会懵逼
static_url_path=none
它的作用就是浏览器访问静态文件的路径,这里的值为none,你可以在浏览器中输入
127.0.0.1:8000/static/文件名 flask默认端口号我忘记了,就写django的吧
如果你改为这样static_url_path=flask
那么你访问静态文件的url为 127.0.0.1:8000/flask/文件名
我们可以知道app
就是一个flask对象,再看下面这段代码
@app.router("/") def index(): return "helle flask" # 在django中我们写路由关系是在app中的urls写好路径和视图函数的映射关系 # 在flask也是有路径和视图函数的映射关系的,它就是通过上面这段代码实现,通过装饰器实现,具体后面再说 # 那么我们访问127.0.0.1:8000/这个url 便会映射到index这个函数
app.run()
这就是开始我们flask项目的命令
run()
就是flask对象一个方法了,它可以传一些参数,比如ip,端口,是否开启debug模式等...
好了,今天更新就结束了,虽然知识点少,好歹也是一字一句的写下来,好梦!!