hola qur tal estoy metido dentro de este mundo de python y estoy haciendo una plataforma pero estoy atorado en mostrar los dato, lo estos haciendo mediente flask y Blueprints pero no me muestra los datos dentro de unas tablas:
este es el js:
este es el python:
y por ultimo aqui es en donde quiero que se muestren los datos pero unicamente me salen los valores de la empresa:
si me pueden ayudar a mostrar datos se los agradeceria mucho
este es el js:
Código:
$(document).ready(function () {
$('#Solicitudes').DataTable({
language: {
url: 'https://cdn.datatables.net/plug-ins/2.0.5/i18n/es-ES.json'
}
});
});
$(document).ready(function() {
$('.obtener-solicitud').click(function() {
var id_solicitud = $(this).data('id');
// Petición AJAX para obtener datos generales de la solicitud
$.ajax({
url: '/obtener_solicitud_json/' + id_solicitud,
type: 'GET',
success: function(data) {
$('#folio').val(data.folio);
$('#nombre_empresa').val(data.nombre_empresa);
$('#area_empresa').val(data.area_empresa);
$('#telefono_contacto').val(data.telefono_contacto);
$('#correo_electronico').val(data.correo_electronico);
// Mostrar modal de solicitud
$('#ModalSolicitud').modal('show');
// Llamar a función para obtener todos los datos relacionados con la solicitud
obtenerDatosRelacionados(id_solicitud);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
});
// Función para obtener todos los datos relacionados con la solicitud
function obtenerDatosRelacionados(id_solicitud) {
// Petición AJAX para obtener datos de inspección
$.ajax({
url: '/obtener_inspeccion_json/' + id_solicitud,
type: 'GET',
success: function(data) {
$('#p_inspeccion_select').val(data.p_inspeccion_select);
$('#hyf_acceso').val(data.hyf_acceso);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
// Petición AJAX para obtener datos de actividades
$.ajax({
url: '/obtener_actividad_json/' + desc_act,
type: 'GET',
success: function(data) {
$('#desc_act').val(data.desc_act);
$('#lug_act').val(data.lug_act);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
// Petición AJAX para obtener datos de personas que ingresan
$.ajax({
url: '/obtener_personas_json/' + nombre,
type: 'GET',
success: function(data) {
$('#nombre').val(data.nombre);
$('#iden').val(data.identificacion);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
// Petición AJAX para obtener datos de vehículos
$.ajax({
url: '/obtener_vehiculo_json/' + vehiculo,
type: 'GET',
success: function(data) {
$('#vehiculo').val(data.vehiculo);
$('#marca').val(data.marca);
$('#modelo').val(data.modelo);
$('#color').val(data.color);
$('#año').val(data.año);
$('#matricula').val(data.matricula);
$('#balizado').val(data.balizado);
// Manejo de campo tiav como imagen, archivo pdf, etc.
if (data.tiav) {
$('#imagenTiav').attr('src', 'data:image/png;base64,' + data.tiav); // Suponiendo que es una imagen o un pdf
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
// Petición AJAX para obtener datos de artículos
$.ajax({
url: '/obtener_articulo_json/' + cantidad,
type: 'GET',
success: function(data) {
$('#cantidad').val(data.cantidad);
$('#nom_art').val(data.nom_art);
$('#desc_art').val(data.desc_art);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
}
});
este es el python:
Código:
solicitud = Blueprint('solicitud', __name__)
@solicitud.route("/obtener_solicitud_json/<int:id_solicitud>", methods=['GET'])
def obtener_solicitud_json(id_solicitud):
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM folios WHERE id_solicitud = %s", (id_solicitud,))
solicitud = cursor.fetchone()
cursor.close()
if solicitud:
resultado = {
'id_solicitud': solicitud[0],
'folio': solicitud[1],
'nombre_empresa': solicitud[3],
'area_empresa': solicitud[4],
'telefono_contacto': solicitud[5],
'correo_electronico': solicitud[6]
}
return jsonify(resultado)
else:
return jsonify({'error': 'Solicitud no encontrada'}), 404
# Consulta 2: p_inspeccion por p_inspecion_select
@solicitud.route("/obtener_inspeccion_json/<p_inspecion_select>", methods=['GET'])
def obtener_inspeccion_json(p_inspecion_select):
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM p_inspeccion WHERE p_inspecion_select = %s", (p_inspecion_select,))
solicitud = cursor.fetchone()
cursor.close()
if solicitud:
resultado = {
'p_inspecion_select': solicitud[0],
'hyf_acceso': solicitud[2]
}
return jsonify(resultado)
else:
return jsonify({'error': 'Inspección no encontrada'}), 404
# Consulta 3: Actividades
@solicitud.route("/obtener_actividad_json/<desc_act>", methods=['GET'])
def obtener_actividad_json(desc_act):
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM actividades WHERE desc_act = %s", (desc_act,))
solicitud = cursor.fetchone()
cursor.close()
if solicitud:
resultado = {
'desc_act': solicitud[0],
'lug_act': solicitud[1]
}
return jsonify(resultado)
else:
return jsonify({'error': 'Actividad no encontrada'}), 404
# Consulta 4: Personas que ingresan por nombre
@solicitud.route("/obtener_personas_json/<nombre>", methods=['GET'])
def obtener_personas_json(nombre):
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM personas_ingresan WHERE nombre = %s", (nombre,))
solicitud = cursor.fetchone()
cursor.close()
if solicitud:
resultado = {
'nombre': solicitud[0],
'identificacion': solicitud[1],
}
return jsonify(resultado)
else:
return jsonify({'error': 'Persona no encontrada'}), 404
# Consulta 5: Vehículos
@solicitud.route("/obtener_vehiculo_json/<vehiculo>", methods=['GET'])
def obtener_vehiculo_json(vehiculo):
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM vehiculos WHERE vehiculo = %s", (vehiculo,))
solicitud = cursor.fetchone()
cursor.close()
if solicitud:
resultado = {
'vehiculo': solicitud[0],
'marca': solicitud[1],
'modelo': solicitud[2],
'color': solicitud[3],
'año': solicitud[4],
'matricula': solicitud[5],
'balizado': solicitud[6],
'tiav': solicitud[7],
}
return jsonify(resultado)
else:
return jsonify({'error': 'Vehículo no encontrado'}), 404
# Consulta 6: Artículos
@solicitud.route("/obtener_articulo_json/<int:cantidad>", methods=['GET'])
def obtener_articulo_json(cantidad):
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM listado_articulos WHERE cantidad = %s", (cantidad,))
solicitud = cursor.fetchone()
cursor.close()
if solicitud:
resultado = {
'cantidad': solicitud[0],
'nom_art': solicitud[1],
'desc_art': solicitud[2]
}
return jsonify(resultado)
else:
return jsonify({'error': 'Artículo no encontrado'}), 404
y por ultimo aqui es en donde quiero que se muestren los datos pero unicamente me salen los valores de la empresa:
Código:
<div class="modal fade" id="ModalSolicitud" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Solicitud de Ingreso</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="mb-3 row">
<label for="staticEmail" class="col-sm-2 col-form-label">Folio</label>
<div class="col-sm-10">
<input type="text" readonly class="form-control-plaintext" id="folio">
</div>
</div>
<div class="accordion" id="accordionExample">
<!-- Datos de la empresa -->
<div class="accordion-item ">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button " type="button" data-bs-toggle="collapse"
data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Datos de la empresa
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<div class="row g-3">
<div class="col-md-6">
<label for="empresa" class="form-label">Nombre de la empresa</label>
<input type="text" class="form-control" id="nombre_empresa" disabled>
</div>
<div class="col-md-6">
<label for="area" class="form-label">Área</label>
<input type="text" class="form-control" id="area_empresa" disabled>
</div>
</div>
</div>
</div>
</div>
<!-- Datos de contacto -->
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
Datos de contacto
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse show" aria-labelledby="headingTwo"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<div class="row g-3">
<div class="col-md-6">
<label for="telefono" class="form-label">Teléfono</label>
<input type="tel" class="form-control" id="telefono_contacto" disabled>
</div>
<div class="col-md-6">
<label for="correo_electronico" class="form-label">Correo
Electrónico</label>
<input type="email" class="form-control" id="correo_electronico"
name="correo_electronico" disabled>
</div>
</div>
</div>
</div>
</div>
<!-- Punto de inspección -->
<div class="accordion-item">
<h2 class="accordion-header" id="headingFour">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseFour" aria-expanded="true" aria-controls="collapseFour">
Punto de inspección
</button>
</h2>
<div id="collapseFour" class="accordion-collapse collapse show" aria-labelledby="headingFour"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<div class="row g-3">
<div class="col-md-6">
<label for="p_inspecion_select" class="form-label">Puntos de inspección a cruzar</label>
<input type="text" class="form-control" id="p_inspecion_select" disabled>
</div>
</div>
</div>
</div>
</div>
<!-- Datos del responsable -->
<div class="accordion-item">
<h2 class="accordion-header" id="headingFive">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseFive" aria-expanded="true" aria-controls="collapseFive">
Fecha y hora de acceso a los puntos de inspeccion
</button>
</h2>
<div id="collapseFive" class="accordion-collapse collapse show" aria-labelledby="headingFive"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<div class="row g-3">
<div class="col-md-6">
<label for="telefono" class="form-label">Fecha y hora de acceso</label>
<input type="datetime-local" class="form-control" id="hyf_acceso" disabled>
</div>
</div>
</div>
</div>
</div>
<!--actividades-->
<div class="accordion-item">
<h2 class="accordion-header" id="headingSix">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseSix" aria-expanded="true" aria-controls="collapseSix">
Actividades a realizar
</button>
</h2>
<div id="collapseSix" class="accordion-collapse collapse show" aria-labelledby="headingSix"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<div class="row g-3">
<div class="col-md-6">
<label for="Descripción" class="form-label">Descripción de actividades</label>
<input type="text" class="form-control" id="desc_act" disabled>
</div>
<div class="col-md-6">
<label for="lug_act" class="form-label">Lugar de actividades</label>
<input type="text" class="form-control" id="lug_act" disabled>
</div>
</div>
</div>
</div>
</div>
<!-- Datos de identificación -->
<div class="accordion-item">
<h2 class="accordion-header" id="headingThree">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree"
aria-expanded="true" aria-controls="collapseThree">
Datos de identificación
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse show" aria-labelledby="headingThree"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<table class="table table-striped table-bordered">
<thead class="table-dark">
<tr>
<th class="fw-bold">Nombre completo</th>
<th>Tipo de identificación</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="form-control" id="nombre" disabled></td>
<td><input type="text" class="form-control" id="iden" disabled></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- Datos del Vehiculo -->
<div class="accordion-item">
<h2 class="accordion-header" id="headingSeven">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseSeven" aria-expanded="true" aria-controls="collapseSeven">
Vehiculos
</button>
</h2>
<div id="collapseSeven" class="accordion-collapse collapse show" aria-labelledby="headingSeven" data-bs-parent="#accordionExample">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label class="form-label">Se accederá un vehículo</label>
<input type="text" class="form-control" id="vehiculo" disabled>
</div>
<div class="mb-3">
<label class="form-label">Marca</label>
<input type="text" class="form-control" id="marca" disabled>
</div>
<div class="mb-3">
<label class="form-label">Modelo</label>
<input type="text" class="form-control" id="modelo" disabled>
</div>
<div class="mb-3">
<label class="form-label">Color</label>
<input type="text" class="form-control" id="color" disabled>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label class="form-label">Año</label>
<input type="text" class="form-control" id="año" disabled>
</div>
<div class="mb-3">
<label class="form-label">Matricula</label>
<input type="text" class="form-control" id="matricula" disabled>
</div>
<div class="mb-3">
<label class="form-label">Cuenta con balizado</label>
<input type="text" class="form-control" id="balizado" disabled>
</div>
<div class="mb-3">
<label class="form-label">Tiav</label>
<a href="#" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Ver</a>
<!-- Offcanvas -->
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasRightLabel">Tiav</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<!-- Aquí se va a mostrar la imagen de la tiav -->
<img id="imagenTiav" class="img-fluid">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--articulos-->
<div class="accordion-item">
<h2 class="accordion-header" id="headingEight">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseEight" aria-expanded="true" aria-controls="collapseEight">
Artículo
</button>
</h2>
<div id="collapseEight" class="accordion-collapse collapse show" aria-labelledby="headingEight"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<table class="table table-striped table-bordered">
<thead class="table-dark">
<tr>
<th class="fw-bold">Cantidad</th>
<th>Nombre del artículo</th>
<th class="text-center">Descripción del artículo</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center"><input type="number" class="form-control" id="cantidad" disabled>
</td>
<td class="text-center"><input type="text" class="form-control" id="nom_art" disabled>
</td>
<td class="text-center"><input type="text" class="form-control" id="desc_art" disabled>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
si me pueden ayudar a mostrar datos se los agradeceria mucho