Szoftver adatai:
Változat: 0.3.1
Feltöltés dátuma: 20 Feb 15
Engedély: Ingyenes
Népszerűség: 3
jsonate egy Django könyvtár, amely lehet, hogy semmit JSON.
Telepítés
& Nbsp; 1. Telepítse lib pip:
& Nbsp; & nbsp; & nbsp; pip telepíteni jsonate
& Nbsp; & nbsp; & nbsp; ** - OR - **
& Nbsp; & nbsp; & nbsp; Tegye a "jsonate" könyvtár valahol a python utat
& Nbsp; 2. Add "jsonate", hogy a telepített alkalmazások (a settings.py fájl)
Használat
A sablonok
& Nbsp; & nbsp; & nbsp; {% -os Terhelés jsonate_tags%}
& Nbsp; & nbsp; & nbsp; {{Semmit | jsonate}}
Ez különösen hasznos beágyazásának adatok az adatok attribútumait
használja a javascript könyvtárak, mint a jQuery (megjegyzés jsonate-attr azonos jsonate | menekülési):
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
Vagy csak közvetlenül felhasználni a javascript ...
& Nbsp; & nbsp; & nbsp;
A Python
& Nbsp; & nbsp; & nbsp; a jsonate import jsonate
& Nbsp; & nbsp; & nbsp; # Querysets
& Nbsp; & nbsp; & nbsp; json = jsonate (User.objects.all ())
& Nbsp; & nbsp; & nbsp; # Értékek
& Nbsp; & nbsp; & nbsp; json = jsonate (User.objects.values ())
& Nbsp; & nbsp; & nbsp; # Modell példányok
& Nbsp; & nbsp; & nbsp; json = jsonate (User.objects.get (email = "my_email@gmail.com"))
Jsonate fordul datetimes be az ISO formátumban az egyszerű elemzés a javascript
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Formázott választ a könnyebb olvashatóság ...
& Nbsp; & nbsp; & nbsp; >>> Print jsonate (User.objects.all () [0])
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Username": "asdfasdf",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "First_name": "asdf",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Last_name": "asdf",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Is_active": hamis,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Email": "asdf@example.com",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Is_superuser": hamis,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Is_staff": hamis,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Last_login": "2011-08-22T19: 14: 50,603531",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Id": 5,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Date_joined": "2011-08-22T19: 14: 50,220049"
& Nbsp; & nbsp; & nbsp; }
Fields / kizárási beállítások
Ön meghatározhatja, hogy mely mezők kell sorozatban a meta lehetőségei
a modellek. Ez hatással van a szerializációja modell példányait és querysets,
csakúgy, mint az Admin!
Példa
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; osztály MyModel (models.Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; normal_info = models.CharField (MAX_LENGTH = 10)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; sensitive_info = models.CharField (MAX_LENGTH = 10)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; osztály Meta:
jsonate_exclude = ("sensitive_info",)
# Ez is működik:
# Jsonate_fields = ("normal_info",)
Alapértelmezésben a Felhasználó modell `django.contrib.auth.models` a majom-foltozott
hogy kizárja a jelszó mezőt ha szerializálásáról querysets illetve olyan esetekben,
Ha meg szeretné határozni, hogy mely mezőket szerializálódnak a per-elbírálás alapján,
A `értékek ()` helyett. mint oly
& Nbsp; & nbsp; & nbsp; >>> Jsonate (User.objects.values ("username", "password"))
& Nbsp; & nbsp; & nbsp; ... "[{" Username ":" someuser "," password ":" SHA1 $ f26b2 $ d03a6123487fce20aabcdef0987654321abcdef0 "}]"
Megjegyzés: ez nyilvánvalóan nem valódi jelszó vagy sós :)
A JsonateResponse
`JsonateResponse` az alosztálya HttpResponse, hogy működik majdnem pontosan
ugyanaz, kivéve, hogy a Bizottság elfogadja olyannak, amilyen adatai helyett csak
szálakat. Visszadja az eredményül kapott JSON mint mimetype "application / JSON"
Például:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; a jsonate.http import JsonateResponse
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def my_view (kérésre):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; vissza JsonateResponse (request.user)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Választ tartalmaz:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {"Username": "asdfasdf", "first_name": "asdf", "last_name": "asdf", "is_active": hamis, "email": "asdf@example.com", "is_superuser": false " is_staff ": hamis," last_login ":" 2011-08-22T19: 14: 50,603531 "," id ": 5," date_joined ":" 2011-08-22T19: 14: 50,220049 "}
Dekoratőr
A `JsonateResponse` nagy, de az élet is kap még könnyebb! A
`@ Jsonate_request` dekoratőr (ihlette a ajax_request dekoratőr
A Django bosszantó) megpróbálja sorosításához semmit a céllal tér vissza
(Via JsonateResponse) küldje vissza egy HttpResponse a mimetype
"Application / JSON"
Az egyetlen dolog, akkor * nem * próbálja sorosításához egy HttpResponse.
Például:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jsonate_request
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def my_view (kérésre):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; form = myForm (request.POST)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ha form.is_valid ():
form.save ()
vissza HttpResponseRedirect ("/ valami / path /")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; más:
vissza form.errors
Érvényes input, a HttpResponseRedirect áthalad, érintetlen.
Ha vannak formában hibákat a válasz visszaérkezik keres valamit, mint
ebben:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Username": [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Ez a felhasználónév már foglalt"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Email": [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Adjon meg egy érvényes email."
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
követelmények :
- Python
Hozzászólás nem található