Mar-23-2020, 04:03 PM
Hi, Trying to get a Web Application up and Running: I am trying to do an SQL SELECT Statement based on the First Select-field while i select an item within the first Select Field I'm receiving a 404 Error:
127.0.0.1 - - [23/Mar/2020 15:43:44] "GET /create-vm HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2020 15:43:44] "GET /category/VC-AMS01 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:43:54] "GET /category/VC-OBIEE-SD01 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:43:59] "GET /category/VC-VDESK-LASCOL HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:44:04] "GET /category/VC-ORCLAPPS-LASCOLO1 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:54:48] "GET /category/VC-QCT-BLR01 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:43:44] "GET /create-vm HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2020 15:43:44] "GET /category/VC-AMS01 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:43:54] "GET /category/VC-OBIEE-SD01 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:43:59] "GET /category/VC-VDESK-LASCOL HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:44:04] "GET /category/VC-ORCLAPPS-LASCOLO1 HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2020 15:54:48] "GET /category/VC-QCT-BLR01 HTTP/1.1" 404 -
from flask import Flask, render_template, g, flash, jsonify
from flask_wtf import FlaskForm
from wtforms import SelectField
from flask_mysqldb import MySQL
app = Flask(__name__)
mysql = MySQL(app)
app.config["SECRET_KEY"] = 'secretkey'
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = ''
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = ''
class CreateForm(FlaskForm):
vcenter = SelectField("Category", coerce=str)
datacenter = SelectField("Datacenter", coerce=str)
@app.route("/cat/<int:Vcenter>")
def category(Vcenter):
c = mysql.connection.cursor()
c.execute("""SELECT Datacenter, Datacenter FROM vsphere.test
WHERE Vcenter = ?""",
(Vcenter)
)
datacentercategories = c.fetchall()
return jsonify(datacentercategories=datacentercategories)
@app.route('/')
def home():
return render_template("home.html")
@app.route("/create-vm", methods=["GET","POST"])
def create():
cur = mysql.connection.cursor()
form = CreateForm()
cur.execute("SELECT distinct Vcenter, Vcenter From vsphere.test")
vcentercategories = cur.fetchall()
form.vcenter.choices = vcentercategories
cur.execute("SELECT distinct Datacenter, Datacenter From vsphere.test")
datacentercategories = cur.fetchall()
form.datacenter.choices = datacentercategories
return render_template("create.html", form=form)
@app.route("/delete-vm", methods=["GET", "POST"])
def delete():
return render_template("delete.html")
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')My HTML code is as follows:{% extends 'base.html' %}
{% set active_page = 'create' %}
{% block title %}Create VM - {% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-7 offset-lg-2 my-5">
<h1>Delete Virtual Machine</h1><hr>
<form method="POST" action="{{ url_for('create') }}">
<div class="form-group">
{{ form.vcenter.label }}
{{ form.vcenter(class="form-control") }}
</div>
<div class="form-group">
{{ form.datacenter.label }}
{{ form.datacenter(class="form-control") }}
</div>
</form>
</div>
{% endblock %}
{% block javascript %}
<script>
$(function(){
function subcategory_change(){
var Vcenter = $("#vcenter").val();
$.ajax({
type: "GET",
url: "/category/" + Vcenter
}).done(function(data){
$("#datacenter").empty();
if($("#vcenter").hasClass("category-filter")){
$("#datacenter").append(
$("<option></option>").attr("value", "0").text(" --- ")
);
}
$.each(data.datacentercategories, function(index, value){
$("#datacenter").append(
$("<option></option>").attr("value", value[0]).text(value[1])
);
});
});
}
$("#vcenter").change(function(){
subcategory_change();
});
subcategory_change();
});
</script>
{% endblock %}
