Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django return json and html depending on client python

I have a django app which has html templates and I also have a command line python api which can do GET and POST requests to the django app on the server. The api can pretty much do everything that the django app can do. How do I make it such that when I access the django app through the browser it returns html but when I access it through the api it returns json?

Where will I have to put the json and what changes do I have to make to my app?

Thank you

like image 719
Neeran Avatar asked Jan 29 '26 13:01

Neeran


1 Answers

Use different URLs for the JSON and HTML versions.

I suggest that your JSON version be available on a url like r'normal/api(?P<json_flag>/json/?)$', and have a parameter in your view to receive the json flag. You can then serve appropriately.

Naturally, your view will have to use different logic to generate HTML and JSON. I strongly suggest that you use the json module instead of a template to generate JSON.

like image 174
Marcin Avatar answered Feb 01 '26 04:02

Marcin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!