好久没更新博客了,来水一篇文章。

因为一些原因,要使用Flask与Flask-SQLalchemy来展示数据(同时得使用echarts),故这里记一些常用东西(仅笔记与个人见解,如有不同意见欢迎在评论中提出,我将会作出修改)

首先就是导入这2个库

from flask import Flask
from flask-SQLAlchemy import SQLAlchemy

导入后,我们就可以使用flask创建一个简单的网页(比如hello world),示例代码:

app=Flask(__name__)
@app.route('/',methods=('POST','GET')) #这里指路由方式,使用修饰符的方法执行。
def helloworld():
return 'hello world'
if __name__==(__main__):
app.run(host='0.0.0.0',post=1234)#这里设置监听本地所有绑定IP,监听端口为1234

如上,打开url后,我们就能看到hello world了。

虽然有了hello world,但是这远远不够我们的正常使用,当然你也可以在return中直接书写html+css+js代码,这也可以在浏览器中直接阅览。但flask内置了jinja2,你可以直接利用他来渲染我们的HTML网站。例如以下的函数。

from flask import render_template
data=[1,2,3,4,5]
@app.route('/index',methods=('GET','POST'))
def index():
return render_template('index.html',data=data) #注意此文件的目录为此py文件的templates下

index.html内容:

{%for i in data:%}{{i}},{%endfor%}

这样就会显示html的内容为:1,2,3,4,5, 另外如需加载静态文件需要使用以下代码

url_for('static', filename='style.css') #为py文件同目录下的static
#加载css
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" type="text/css" />
#加载js
<script type='text/javascript' src='{{url_for('static',filename='main.js')}}'></script>

SQLAlchemy的设置就比较简单了。

app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://user:password@host:port/database?charset=utf8'
db=SQLAlchemy(app)
class test_models(db.Model):
__tablename__='test_models'#这里设置数据库的表名,和class名无关
id=db.Column(db.Integer,primary_key=True,autoincrement=True)#primary_key为设置主键,autoincrement为设置自增
data=db.Column(db.String,unique=True)# 如果设为True,这列不重复
def __init__(self,data):
self.data=data
def __repr__(self):
return '<test_models(id=%s,data=%s)>'%(self.id,self.data) #这里输出query查询的格式

至此我们就定义好了一个数据库,然后我们进行增删改查等操作:

#首先创建数据库
db.create_all()
#增加内容至数据库
data=test_models('Hello world')
db.session.add(data)
db.session.commit()
#删除一个内容
db.session.delete(data)
db.session.commit()
#查询数据库
test_models.query.all()
#按照条件查询
test_models.query.filter_by(id='1').all()
test_models.query.order_by(desc(id)).all()#倒序查询