This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Trap in Python 3.5 under Apache 2.2 when Django database returns 'None'.
Type: behavior Stage: resolved
Components: Versions: Python 3.5
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: Nosy List: jomo_willacy@hotmail.com, xtreak
Priority: normal Keywords:

Created on 2019-06-25 02:29 by jomo_willacy@hotmail.com, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (2)
msg346476 - (view) Author: JOMO WILLACY (jomo_willacy@hotmail.com) Date: 2019-06-25 02:29
I am using Python 3.5 with Django and the Python web server and Apache 2.2 web server.
I am querying the database for a "drug_name" and an "insurer" - # and minimum "price".

Here is what works and what does not work

Valid Drug Name   Valid Insurer     Works    Python web Server  Apache

Epipen               2               Yes        Yes               Yes

Lisenopril           2               Yes        Yes               Yes

Naftin               7               Yes        Yes               Yes



Invalid Drug Name    Insurer          Works     Python Server   Apache

Licenopril                            Yes        Yes              Yes

Licenopril             2                         Yes              No


In the last case up above it traps and the server logs at /var/www/logs/error.log say "Unhandled Exception".

This is where it traps ans what it says :

 Cannot convert str to float  :  'None'

File "/usr/local/lib64/python3.5/site-packages/django/db/models/fields/__init__.py"  line 1747, in get_prep_value

   return float( output_value )


I then went into the file where the trap occurred and I added a try catch like the function after line 1747 and the problem went away.

The trap only happens under Apache.

If you wish to reproduce this problem then go to these links and try the input listed above :

Python Web Server :

   http://34.200.216.166:8000/health_insurer2/minimum_price_for_drug/


Apache Web Server :

   http://34.200.216.166/health_insurer2/minimum_price_for_drug/


As an aid I have left debug=on in django so you will be able to trace the trap in the browser

The file that I am running is views.py
I am running Amazon AMI Linux in the cloud.


Sincerely Yours,


Jomo Willacy
msg346479 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2019-06-25 02:53
This tracker deals with CPython development and this doesn't seem like am issue in CPython but rather an error in your program. I assume you might be passing None somewhere in the django ORM query that is expecting a number. Also please don't post open web server endpoints with debug mode on. The debug server is not meant to be exposed to the internet. This question could find better answer from stackoverflow.
History
Date User Action Args
2022-04-11 14:59:17adminsetgithub: 81578
2019-06-25 02:53:11xtreaksetstatus: open -> closed

type: crash -> behavior

nosy: + xtreak
messages: + msg346479
resolution: third party
stage: resolved
2019-06-25 02:29:17jomo_willacy@hotmail.comcreate