用uniapp+odoo写一个家用型的APP(2)odoo后端开发

本博文内容:设计一个能够提供restful API服务的后台服务器。

作为一个app应用的后端服务器,可以用很多方法,但由于这段时间我在学习python和odoo, 所以就用odoo来开发了。

用odoo开发app的后台自然不是主流和简易的方案,但作为学习手段,这个项目就为练练手吧。

这部分内容,每天写一点,将持续在这个博文中完善

1. 安装odoo, 初始化项目框架

1. 把odoo 14软件下载下来,安装在c:/odoo目录下

2.修改odoo.conf文件

3.在odoo模块访问路径中添加一条 

addons_path = C:\odoo\server\odoo\addons, C:\odoo\server\addons

4. 在C:\odoo\server\addons目录下创建一个的odoo基本框架,项目暂名为chool

manifest文件定义:

{
    'name': "chool",
    'summary': """ 后台服务器""",
    'description': """
        笔记、题库、答题
    """,
    'depends': ['base'],
    'data': [
        'security/ir.model.access.csv',
        'views/views.xml',
    ],
    'installable': True,
    'application': True,
}

2 定义数据模型

本项目共定义了4个模型:

  • note: 笔记模型:存放每篇文章的数据,
  • exercise: 题库模型:存放题目的数据
  • comments: 评论:存放用户评论的数据
  • knowledgeset: 栏目:用户自定义栏目的数据

例如note数据模型:

class Note(models.Model):
    _name = 'chool.note'
    _description = '笔记'
    UID         = fields.Char(string='编号')
    title       = fields.Char(string='标题')
    cover       = fields.Text(string='封面')
    content     = fields.Text(string='内容')
    source      = fields.Char(string='来源')
    knowledgeset= fields.Char(string='知识集')
    author      = fields.Char(string='作者')
    update      = fields.Char(string='日期')
    action      = fields.Char(string='操作')

3. 定义API接口

也就是写controller文件。

分别定义了授权接口、数据CRUD接口,就此本模块可以对外提供服务了。

class OdooAPI(http.Controller):
    # 获取授权
    @http.route('/auth/', type='json', auth='none', methods=["POST"], csrf=False)
    def authenticate(self, *args, **post):
       ......


    # 查询整个模型
    @http.route( '/api/<string:model>', type='http', auth='user', methods=['GET'], csrf=False)
    def get_model_data(self, model, **params):
        ......

4. 定义视图

使得能够在odoo环境下管理数据

<?xml version="1.0"?>
<odoo>
<data>
<record id="chool.note_list" model="ir.ui.view">
......
<record id="chool.note_form" model="ir.ui.view">
......
<record id="chool.note_action" model="ir.actions.act_window">
.......
<menuitem id="chool.menu_root" name="chool"/>
<menuitem id="chool.menu_1" name="笔记" action="chool.note_action" parent="chool.menu_root"/>
</data>
</odoo>

 

5. 定义模块访问权限

即写security文件

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_chool_note_manager,chool.note_manager,model_chool_note,base.group_user,1,1,1,1
......

 

6. 安装本模块

在odoo中安装这个模块

猜你喜欢

转载自blog.csdn.net/boophan/article/details/118073977