欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flask项目经验总结

程序员文章站 2022-03-05 08:07:47
...

models 研究

BaseModel(object) 基础类,用来给子类继承

  1. create_time = db.Column(db.DATETIME, default=datetime.now()) 创建时间
  2. 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 ,处理数据,

  1. 接收数据, form , file, args, argv,
  2. 判断数据的正确性,
    1. 是否为空 if not all([id_name, id_card])
    2. 是否合乎正则 if not re.match(r’^$’, phone):
    3. 是否被使用 if User.query.filter(User.id_card==id_card).count():
  3. 将数据存储到数据库,或者查询数据库,返回指定数据,jsonify
    try:
    db.session.add(user)
    db.session.commit()
    except Exception:
    return xxx

ajax

两种调用ajax的方法

  1. 页面加载完成,自动请求部分网页
  2. 点击按钮,上传或者请求数据

上传页面数据

  1. 获取单个值
    • name = $(‘#real-name’).val()
    • $.get(‘/user/user/’,{‘name’:name},function(data){})
  2. 获取表单,上传表单里的内容
$('#form-house-info').submit(function(){
    $.post('/house/newhouse/', $(this).serialize(),function(data){

    })
});

渲染页面的方法

  1. 局部简单渲染
    • 忽略,常规方法
  2. 大面积页面异步加载
    • 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);
相关标签: 经验总结