- 首先说一下,就这几天自己的自学习情况来说,个人认为Flask框架真的还是很容易上手快速搭建一个小型的Web项目的,而且也很容易理解的对于有编程和Web开发基础的朋友们来说,其核心也就是MVC啦(Model模型、View视图、Controller控制器)
- 搭建个Flask框架也是很简单了,用pycharm编辑器创建项目的时候,选择Flask,编辑器直接把框架都生成好了。
-
下面简单介绍一下生成项目的目录结构:
(我们以后要用到的也就圈起来那些,但是以后还要自己创建其它的)
- static文件夹里存放的都是些静态文件,比如:css,js,图片,视频,音频等。
- templates就是存放些html文件。
- app.py文件就是该项目的入口,其中也可以作处理路由以及配置的文件
展开一下app.py文件:
# 引入Flask类,Flask类实现了一个WSGI应用
from flask import Flask
# app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__,其他参数省略选择默认值。
app = Flask(__name__)
# 使用app.route装饰器会将URL和执行的视图函数的关系保存到app.url_map属性上。
处理URL和视图函数的关系的程序就是路由,这里的视图函数就是hello_world。
@app.route('/')
def hello_world():
return 'Hello World!
# 使用这个判断可以保证当其他文件引用这个文件的时候(例如“from hello import app”)不会执行这个判断内的代码,也就是不会执行app.run函数
if __name__ == '__main__':
# 执行app.run就可以启动服务了。默认Flask只监听虚拟机的本地127.0.0.1这个地址,端口为5000。
app.run()
1.路由Route
项目基础配置
app=Flask(
__name__,
template_folder='xxx',
static_folder='xxx',
static_url_path='/xxx'
)
- 1.template_folder : 指定存放模板的文件夹的名称(默认为templates)
- 2.static_folder : 指定存放静态文件资源的文件夹的名称(默认为static)
- 注意:如果没有指定static_url_path的话,则访问路径和static_folder 的名称是一致的
- 3.static_url_path : 指定静态文件的访问路径
设置IP地址端口和调试状态
app.run(debug=True,port=端口号,host='IP地址')
实例
# 控制着访问地址,关联着相关的处理函数(控制器)
@app.route('/register',methods=['GET','POST'])
def register():
if request.method == 'GET':
return render_template('register.html')
else:
uname =request.form['username']
email=request.form['email']
upwd=request.form['password']
savetosql(uname,uurl,upwd)
return return render_template('login.html')
上面的路由是不带参数的,再说一下带参数的路由
@app.route('/show/<name>')
def show(name):
print(name)
- <name>就是该路由带的参数,如果用户访问:http://xxx/show/tom
- 控制台对应输出:tom
2.模板 Templates
模板中存放的都是html文件,这里呢,可以接收从路由中返回的参数,在路由中用:return render_template(‘xxx.html’,变量1=值1… …)把参数传递给相应的html文件,在html中用{{变量名}}来表示变量名所对应的值。
3.请求和响应
一个web网站,请求响应是最频繁
常用的请求属性:
- 1.request.scheme : 获取请求协议
- 2.request.method : 获取本次请求的请求方式(GET / POST)
- 3.request.args : 获取以get请求方式提交的数据
- 4.request.form : 获取以post请求方式提交的数据
- 5.request.cookies:获取cookies中的相关信息
- 6.request.headers:获取请求信息头的相关信息
- 7.request.files:获取上传的文件
- 8.request.path:获取请求的资源具体路径(不带参数)
- 9.request.full_path:获取完整的请求资源具体路径(带参数)
- 10.request.url: 获取完整的请求地址,从协议开始
4.模型 Models
模型是对应与业务数据所需要创建出来的数据存储模型,为了建立项目中的数据与数据表中的数据所对应而产生的。这里有一个重要的知识点ORM(对象关系映射:是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。)
基本流程是:
- 1.配置数据库的连接
app.config[‘SQLALCHEMY_DATABASE_URI’]=‘mysql://用户名:密码@地址:3306/表名’
- 2.创建数据库对象
db = SQLAlchemy(app)