无法通过python Web应用程序更新SQL数据库

时间:2016-04-26 18:56:23

标签: python mysql web-applications

需要有关我的python Web应用程序的帮助。我希望用户能够更新某些字段(我已经隐藏了一些字段)。我在之前的函数中调用了updateTrail(),它显示正常。但是,当我提交更新时,我的原始值保持不变。对我来说奇怪的是,当我调试表单时,会显示我放入的更新值。

 def getUpdate(activities, dogs, restrooms, freepark, open, contact, name):
    """
    Middleware function that will update objects in the database.
    """
    # connect to db
    conn, cursor = getConnectionAndCursor()

    # prepare SQL
    sql = """
    UPDATE hiking
    SET town=%s, region=%s, activities=%s, dogs=%s, restrooms=%s, freepark=%s,open=%s, contact=%s, lat=%s, lng=%s
    WHERE name=%s
    """

    parameters=(activities, dogs, restrooms, freepark, open, contact, name)
    # run the SQL
    cursor.execute(sql, parameters)

    # fetch the results
    data = cursor.fetchall()

    print "<mark> %d row(s) were inserted.</mark>" % cursor.rowcount

    # clean up
    cursor.commit() #commits the changes to the database
    cursor.close()
    conn.close()

    return data
################################################################################
def updateTrail(name, town, region, activities, dogs, restrooms, freepark, open, contact, lat, lng):
    """
    Allows the user to update a trail of their choosing.
    """
    print'''
    <center>
    <form>
        <input type="hidden" name="name" value="%s">

        <input type="hidden" name="town" value="%s">

        <input type="hidden" name="region" value="%s">

        <font color="white"><b>Update Activities</b></font>
        <input type="text" name="activities" value="%s">

        <font color="white"><b>Are Dogs Allowed?</b></font>
        <input type="text" name="dogs" value="%s">

        <font color="white"><b>Are Restrooms Available?</b></font>
        <input type="text" name="restrooms" value="%s">

        <font color="white"><b>Is there free parking?</b></font>
        <input type="text" name="freepark" value="%s">

        <br>

        <font color="white"><b>When is the trail open?</b></font>
        <input type="text" name="open" value="%s">

        <font color="white"><b>Update Phone Number</b></font>
        <input type="text" name="contact" value="%s">

        <input type="hidden" name="lat" value="%s">

        <input type="hidden" name="lng" value="%s">

        <br>

        <input type="submit" name="updateTrail" value="Update Trail Information">
    </form>
    </center>

    ''' % (name, town, region, activities, dogs, restrooms, freepark, open, contact, lat, lng)

    ################################################################################

if __name__ == "__main__":

    # get form field data
    form = cgi.FieldStorage()
    debugFormData(form)

elif 'updateTrail' in form:
    #unpack into python variable
    name = form['form'].value
    town = form['town'].value
    region = form['region'].value
    activities = form['activities'].value
    dogs = form['dogs'].value
    restrooms = form['restrooms'].value
    freepark = form['freepark'].value
    open = form['open'].value
    contact = form['contact'].value
    lat = form['lat'].value
    lng = form['lng'].value

    #update the trail's information to the database
    getUpdate(activities, dogs, restrooms, freepark, open, contact)

1 个答案:

答案 0 :(得分:0)

不应该&#34;名称=形式[&#39;形式&#39;]。值&#34; be&#34; name = form [&#39; name&#39;]。value&#34;?