-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathservidor.py
54 lines (41 loc) · 1.98 KB
/
servidor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from flask import Flask,render_template,make_response,request,jsonify
import pdfkit
#creando el servidor __name__ = nombre del archivo
app = Flask(__name__ , static_url_path='/static') #Para jalar CSS yJS
# Muestra el index la pagina principal
@app.route('/')
def temp():
return render_template('tem.html')
# Recibe unicamente los datos de la imagn para almacenarla temporalmente
@app.route('/img', methods=["GET","POST"])
def img():
global src
src = request.form['src']# sacamos la variable que mando el cliente
return jsonify({'status': True}), 200 #retornamosun json para confirmar
#Recibe los parametros que llevará el PDF
@app.route('/pdf/<nombre>/<paterno>/<materno>/<sexo>/<dia>/<mes>/<anio>/<entidad>/<direccion>/<edad>/<curp>', methods=["GET","POST"])
def pdf_template(nombre,paterno,materno,sexo,dia,mes,anio,entidad,curp,edad,direccion):
data = { #Guarda los datos en variables de un diccionario para meterlos en la vista
"nombre":nombre,
"paterno":paterno,
"materno":materno,
"sexo":sexo,
"dia":dia,
"mes":mes,
"anio":anio,
"entidad":entidad,
"curp":curp,
"edad":edad,
"direccion":direccion
}
rendered = render_template('pdf_template.html',data=data,src=src) #Renderiza la vista
css = ['static/vendor/bootstrap/css/bootstrap.css']
pdf = pdfkit.from_string(rendered,False,css = css) # Crea el pdf que se mostrara en el navegador
pdf1 = pdfkit.from_string(rendered,data["nombre"]+".pdf",css = css) #Crea el pdf almacenado
response = make_response(pdf) #Crea la respuesta para el navegador
response.headers['Content-Type'] = 'application/pdf' #Indica que la respuesta sera de tipo PDF
response.headers['Content-Disposition'] = "inline; filename="+data["nombre"]+".pdf" #Agrega el nombre que tendra el archivo al ser descargado
return response, 200 #Envia la respuesta con un codigo 200 que significa que todo ocurrio correctamente
if __name__ == '__main__': # Ejecuta el codigo
src=None
app.run(debug=True,host='localhost',port=3000) #inicia la aplicacion web