python odoo-bin scaffold Academy my-modules
没有错误信息则创建成功,可以查看my-modules目录下多了Academy模块
# -*- coding: utf-8 -*-
from odoo import http
class Academy(http.Controller):
@http.route('/academy/academy/', auth='public')
def index(self, **kw):
return "Hello, world"
<odoo>
<template id="index">
<title>Academy</title>
<t t-foreach="teachers" t-as="teacher">
<p><t t-esc="teacher"/></p>
</t>
</template>
</odoo>
# -*- coding: utf-8 -*-
from odoo import http
import json
from odoo import api
import logging
_logger = logging.getLogger(__name__)
class Academy(http.Controller):
@http.route('/academy/academy/', auth='public')
def index(self, **kw):
return http.request.render('academy.index', {
'teachers': ["Diana Padilla", "Jody Caroll", "Lester Vaughn"],
})
# # 返回字符串
# @http.route('/academy/hello/', auth='public')
# def hello(self, **kw):
# name = kw.get('name')
# if name:
# return 'Hello ' + name
# return 'Hello World'
#
# # 返回json数据
# @http.route('/academy/getTeachers', type='http', auth='public')
# def getTeachers(self):
# list = ["Diana Padilla", "Jody Caroll", "Lester Vaughn"]
# dic = {}
# dic['teachers'] = list
# return json.dumps(dic)
#
# # 接收json参数
# # 参数格式data = {"params": dict(key="value")}
# @http.route(['/academy/getTeacherByName'], type='json', auth='public', methods=['POST'])
# def getTeacherByName(self, **kw):
# _logger.info("window下可以使用curl测试命令:")
# _logger.info("curl http://localhost:8069/openacademy/getSessionById -X POST -d \"{\\\"params\\\":{\\\"name\\\": \\\"Manson\\\"}}\" --header \"Content-Type: application/json\"")
# _logger.info(kw)
# teachers = ["Diana Padilla", "Jody Caroll", "Lester Vaughn"]
# name= kw.get('name', False)
# if name:
# teachers = [name]
# return json.dumps(teachers)
#
# # 查询数据库
# @http.route('/academy/getTeacherName/', auth='public')
# def getTeacherName(self, **kw):
# sql = "select name from academy_teachers"
# # 方式一,直接查询数据库
# db = psycopg2.connect(database="odoo", user="root", password="admin", host="127.0.0.1", port="5432")
# vals = db.cursor()
# vals.execute(sql)
# dicts = vals.fetchall()
# # 方式二,使用api查询
# http.request.env.cr.execute(sql)
# dicts = http.request.env.cr.dictfetchall()
# return json.dumps(dicts)
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class Teachers(models.Model):
_name = 'academy.teachers'
name = fields.Char()
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_academy_teachers,access_academy_teachers,model_academy_teachers,,1,0,0,0
<odoo>
<data>
<record id="padilla" model="academy.teachers">
<field name="name">Diana Padilla</field>
</record>
<record id="carroll" model="academy.teachers">
<field name="name">Jody Carroll</field>
</record>
<record id="vaughn" model="academy.teachers">
<field name="name">Lester Vaughn</field>
</record>
</data>
</odoo>
# -*- coding: utf-8 -*-
from odoo import http
class Academy(http.Controller):
@http.route('/academy/academy/', auth='public')
def index(self, **kw):
Teachers = http.request.env['academy.teachers']
return http.request.render('academy.index', {
'teachers': Teachers.search([])
})
<odoo>
<template id="index">
<title>Academy</title>
<t t-foreach="teachers" t-as="teacher">
<p><t t-esc="teacher.id"/> <t t-esc="teacher.name"/></p>
</t>
</template>
</odoo>
"action_academy_teachers" model="ir.actions.act_window">
"name">Academy teachers</field>
"res_model">academy.teachers</field>
</record>
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_academy_teachers,access_academy_teachers,model_academy_teachers,,1,1,1,1
1.Odoo13创建报表
https://blog.csdn.net/u010520912/article/details/103497489