flask项目经验总结
程序员文章站
2022-03-05 08:07:47
...
models 研究
BaseModel(object) 基础类,用来给子类继承
- create_time = db.Column(db.DATETIME, default=datetime.now()) 创建时间
- update_time = db.Column(db.DATETIME, default=datetime.now(),onupdate=datetime.now())
最后一次修改时间
序列化,转换为json格式 id –> {‘id’: id}
def to_basic_dict(self):
return {
'id': self.id,
'avatar': self.avatar,
'image': self.index_image_url if self.index_image_url else '',
'create_time': self.create_time.strftime('%Y-%m-%d %H:%M:%S'),
}
api 接口 ,orm ,处理数据,
- 接收数据, form , file, args, argv,
- 判断数据的正确性,
- 是否为空 if not all([id_name, id_card])
- 是否合乎正则 if not re.match(r’^$’, phone):
- 是否被使用 if User.query.filter(User.id_card==id_card).count():
- 将数据存储到数据库,或者查询数据库,返回指定数据,jsonify
try:
db.session.add(user)
db.session.commit()
except Exception:
return xxx
ajax
两种调用ajax的方法
- 页面加载完成,自动请求部分网页
- 点击按钮,上传或者请求数据
上传页面数据
- 获取单个值
- name = $(‘#real-name’).val()
- $.get(‘/user/user/’,{‘name’:name},function(data){})
- 获取表单,上传表单里的内容
$('#form-house-info').submit(function(){
$.post('/house/newhouse/', $(this).serialize(),function(data){
})
});
渲染页面的方法
- 局部简单渲染
- 忽略,常规方法
- 大面积页面异步加载
- script 方法。template 包
html 里
<div id="div1"></div>
{% raw %}
<script type="text/html" id="sc1">
{{each hlist as house}}
需要在页面全部渲染的内容
{{/each}}
</script>
{% endraw %}
<script src="/static/js/template.js"></script>
js 里
var area_name_html = template('sc1', {alist:data.alist});
$('#div1').append(area_name_html);
下一篇: AOP+MDC实现traceId日志追踪