使用Alembic添加数据库字段操作流程:
切换至db_migrate目录下
(1).在model.py里面添加内容
(2).运行alembic revision --autogenerate -m "comment内容" 生成数据库迁移文件
(3).运行alembic upgrade head 将迁移文件的内容更新到数据库
2.liunx命令(详情请见linux系统硬件配置查看方法)
(1)查看cpu
grep "model name" /proc/cpuinfo | cut -f2 -d:
(2)查看内存
grep MemTotal /proc/meminfo | cut -f2 -d:
(3)查看当前linux的版本
cat /etc/redhat-release
(4)查看内核版本
uname -a
(5)查看ip,mac地址
ifconfig
查看网关
cat /etc/sysconfig/network
查看dns
cat /etc/resolv.conf
3.angularjs中,如果想对dom元素进行操作,最合适的方法是在该dom上添加指令,一方面可以多处使用,另一方面,指令是在元素加载完成之后进行的,可保证元素一定存在。
将
//drawPage($scope,$http,1,Util);
变化为
function clientorder(Util,$http) {
return {
restrict:'A',
link:function ($scope, element, attrs) {
drawPage($scope,$http,1,Util);
}
};
}
因为在drawPage方法里面,存在替换元素的操作
function drawPanel(screenWidth, screenHeight) {
svg= d3.select('#main_client_order')
.append('svg:svg')
.attr('width', screenWidth+100)
.attr('height', screenHeight+100)
.style("margin-left", "20px")
.style("margin-top", "20px")
.attr("id", "orderId");
scope.svg= svg;
}
4.数据库关联字段时,首先考虑到能不能在model里面通过方法等内容获取到,可以的话,就添加进去。一方面免去了维护添加字段之后的修改删除,另一方面,充分利用sqlalchemy的功能。
model.py
class Clientgroup(Base):
__tablename__ = 'clientgroup'
name= Column(String(255))
def client_count(self):
return Thinclient.query.filter_by(group_id=self.id).count()
serializer.py
class ClientgroupSerializer(Schema):
client_count= fields.Function(lambda c: c.client_count())
class Meta:
fields= all_fields(Clientgroup)+['client_count']
页面获取如下:
{{ group.client_count }}
5.angularjs里面 类名或者方法名为参数时的处理方法:
(1)类名和方法名都为参数
var resource = $scope.case ? Model1.add_model1_disk : Model2.add_model2_disk;
resource({id: id},function (data) {
},function(e){
})
(2)方法名为参数
var fun_name = "add";
Model[fun_name]({id: id},function (data) {
},function(e){
})