odoo 第一个模块

官方文档传送门

odoo模块的组成

Bussiness objects

业务逻辑,一些python class

Data files

数据文件 xml/csv文件

Web Controllers

web控制器,处理http请求

Static web data

静态文件,图片/css/js

模块的结构

模块的加载目录

--addons-path

odoo模块是一个python模块,本质上是一个包含 init.py 的目录

odoo模块需要有一个manfiest文件 openerp.py

创建模块

python odoo-bin scaffold openacademy myaddons

在 myaddons中创建模块 openacademy

刷新文件夹可以看到myaddons文件夹中有了新数据

odoo 第一个模块_第1张图片
Paste_Image.png

打开 myaddons/openacademy/manifest.py 文件
可以看到这是一些对该模块的一些描述,需要加载的数据什么的

controllers 文件夹算是路由吧
models 文件夹是model,ORM 对应了数据库中的表结构,可以简化书写SQL语句的烦恼
views 文件夹是视图,通过xml文件渲染

1. 修改model文件,ORM

打开 models.py文件

# -*- coding: utf-8 -*-
from odoo import models, fields, api
class openacademy(models.Model):   
   _name = 'openacademy.openacademy'    
  name = fields.Char(required=True)
  description = fields.Text()

一个类对应了数据库的一张表,需要继承自 models.Model 。

_name会对应数据库的表名,但是数据库中的名字略有不同的是, .会转换成_
也就是说 openacademy.openacdemy 会对应数据库中的 openacademy_openacademy

name 则是表的一个字段,数据类型是 Char类型

requried=True 表示是必填字段

好了,现在数据库有了,下一步就是数据的显示了

2. 重启服务器,进行设置

odoo 第一个模块_第2张图片
Paste_Image.png

进入设置,点击右边的激活开发者模式

然后进入应用列表页面

odoo 第一个模块_第3张图片
Paste_Image.png

点击左边的更新应用列表

更新完成后 在搜索框中搜索 openacademy ,这里要去掉前边的 模块选项

Paste_Image.png

没错,点击安装!

odoo 第一个模块_第4张图片
Paste_Image.png

打开数据库发现 openacademy_openacademy 已经创建
已经有了我们写的 name 和 description字段了,其余的字段是默认生成的

3. 修改xml文件用于显示

打开views/views.xml 文件

 
    
         
             {a value}
         
     

这里已经说的很清楚了,于是按照我们写的进行替换就可以了

  
          
             
                     Hello world       
            
     

重新更新模块,上面已经提到就不用重复了,值得一提的是:修改python文件是需要重启服务器的再升级模块,而只修改xml文件的话不用重启服务器,只要升级模块即

重新刷新数据库表~

odoo 第一个模块_第5张图片
Paste_Image.png

刚才写的数据已经写到数据库啦

再添加几条数据应该很简单了吧?


                     Hello world
        
        
                     Hello Odoo
                     Odod 踩坑
        
        
                     Hello Python
                     生活不易,我用Python
        

只要在xml中加上几句就好了啦

不要忘了升级模块!

odoo 第一个模块_第6张图片
Paste_Image.png

你可能感兴趣的:(odoo 第一个模块)