2017-09-19 1 views
-1

Voici mon code:formulaire HTML - se débarrasser de point d'interrogation et l'équation

{% if request.path == '/employees' %} 
    <form action="{{ url_for('employees_name', employee_id=x) }}" /> 
    EmployeeId: <input type="text" name=x><br> 
    <input type="submit" value="Submit"> 
    </form> 
{% endif %} 

Par ex quand je entrée "1" en tant que sortie je reçois:

http://127.0.0.1:5002/employees/?x=1 

mais je dois ceci:

http://127.0.0.1:5002/employees/1 

Voici mon code Python:

app = Flask(__name__) 
api = Api(app) 

class Employees_Name(Resource): 
    def get(self, employee_id): 
     conn = db_connect.connect() 
     query = conn.execute("select * from employees where EmployeeId =%d " %int(employee_id)) 
     result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]} 
     return Response(render_template('test.html', result=result, mimetype='text/html')) 

api.add_resource(Employees, '/employees') 

Est-il possible de le faire ? Merci

+0

Je suis en train de faire quelque chose comme moteur de recherche .. – pingwin850

+0

Que fais-tu? S'il vous plaît expliquer votre code – Nabin

+0

code html est pour l'affichage des données de la base de données dans le navigateur .. Code Python prend ces données de la base de données .. J'ai besoin de ce modèle 'http: //127.0.0.1: 5002/employees/1' pour l'afficher dans un navigateur – pingwin850

Répondre

1

Lorsque vous utilisez 'GET' pour gérer le formulaire, les données de formulaire seront formatées en tant que chaîne de requête ajoutée après l'URL. La méthode normale consiste à utiliser un point de terminaison POST pour gérer le formulaire et valider les données de formulaire, puis rediriger vers un point de terminaison GET comme le vôtre.

Ainsi, le code peut comme ceci:

from flask import request, url_for, redirect 
... 

class Employees(Resource): 
    def post(self): 
     employee_id = request.form.get('employee_id') 
     # validate... 
     return redirect(url_for('employee', employee_id=employhee_id)) 

class Employee(Resource): 
    def get(self, employee_id): 
     conn = db_connect.connect() 
     ... 

api.add_resource(Employees, '/employees') 
api.add_resource(Employee, '/employees/<int:employee_id>') # this rule is waht you want 

Dans le modèle:

<form action="{{ url_for('employees') }}"> 
    EmployeeId: <input type="text" name="employee_id"><br> 
    <input type="submit" value="Submit"> 
</form>