1.安装Flask -- pip install Flask
2.安装SQLAlchemy --- pip install Flask-SQLAlchemy
3.安装Flask-WTForm ---- pip install Flask-WTF
4.将包依赖信息保存到requirement.txt文件中
pip freeze > requirement.txt
安装txt文件中的所有包
pip install -r requirement.txt
5. 将一个外部数据库导入到postgressql 数据库中
先新建一个数据库 如:xuemc_bd
在cmd命令行,进入postgressql数据库安装路径bin目录下,再使用 psql -h localhost -U postgres -W -d xuemc_bd < xuemc_db.sql
6.安装BOOTSTRAP --- pip install Flask-bootstrap
7.
在建立model 时,总是报relationship无法建立。
解决办法:删除relationship语句,在子表中的字段直接设置Foreignkey(父表.字段)
8.
建立Flask项目时,在根目录建一个run.py文件用作启动项目,在根目录新建app文件夹,在app文件夹中再新建一__init__.py程序,用作初始化app用,然后再新建view.py程序,用作逻辑处理。
run.py 中包含内容:
from App文件夹名称 import app
import App文件夹名称.views
if __name__ == '__main__':
app.run(debug=True)
__init__.py中包含内容:
app = Flask(__name__)
view.py 中包含内容:
@app.route('/')
def indext():
return ...
9.
建数据表时,设置ID 为唯一键,类型不能选择 int ,要选择serial 类型,否则插入数据时会报错id 违反非空约束
10.当页面有表单数据需要提交但又不想重载整个页面时,可以使用ajax异步提交数据,只提交表单数据给服务器,不重载整个页面。
页面jquery代码:
<script>
$(document).ready(function() {
$("#sendmsg").click(function(){
$.ajax({url:"/sendmesg/",data:{"textmsg":$("#textmsg").val()},success: function(data){
$("#xiaoxishow").append("<br />");
$("#xiaoxishow").append(data);
}
});
}
);
});
</script>
python 代码:
@app.route('/sendmesg/')
def sendmesg():
fname = session['rname']
nid = session['id']
msg = request.args.get('textmsg')
if fname == '':
flash('Please select a friend to sendmessage!')
return redirect(url_for('detail', radioname=fname))
else:
newf = model.Friendship.query.filter_by(friendname=fname,userid=nid).one()
newmsg = model.Message(message=msg,friendid=newf.id)
model.db.session.add(newmsg)
model.db.session.commit()
return msg
11.上传图片到服务器时,页面的FORM表单要设置 enctype="multipart/form-data" 参数
<form role="form" method="post" action="/changface/" enctype="multipart/form-data">