Software informatie:
Versie: 0.3.1
Upload datum: 20 Feb 15
Licentie: Gratis
Populariteit: 3
jsonate is een Django bibliotheek die alles kan maken in JSON.
installatie
& Nbsp; 1. Installeer lib met pip:
& Nbsp; & nbsp; & nbsp; pip jsonate installeren
& Nbsp; & nbsp; & nbsp; ** - OF - **
& Nbsp; & nbsp; & nbsp; Doe de "jsonate" directory ergens in je python pad
& Nbsp; 2. Toevoegen "jsonate" om uw geïnstalleerde apps (in de settings.py bestand)
Gebruik
In de sjablonen
& Nbsp; & nbsp; & nbsp; {% Belasting jsonate_tags%}
& Nbsp; & nbsp; & nbsp; {{Anything | jsonate}}
Dit is vooral nuttig voor het inbedden van gegevens in in gegevenskenmerken voor
te gebruiken met javascript libraries zoals jQuery (noot jsonate-attr is identiek aan jsonate | escape):
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
Of gewoon gebruik maken van het direct in javascript ...
& Nbsp; & nbsp; & nbsp;
In Python
& Nbsp; & nbsp; & nbsp; van jsonate import jsonate
& Nbsp; & nbsp; & nbsp; # QuerySets
& Nbsp; & nbsp; & nbsp; json = jsonate (User.objects.all ())
& Nbsp; & nbsp; & nbsp; # Waarden
& Nbsp; & nbsp; & nbsp; json = jsonate (User.objects.values ())
& Nbsp; & nbsp; & nbsp; # Model gevallen
& Nbsp; & nbsp; & nbsp; json = jsonate (User.objects.get (email = "my_email@gmail.com"))
Jsonate verandert datetimes in iso-formaat voor eenvoudige parsing in javascript
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Geformatteerd respons voor het gemak van het lezen ...
& Nbsp; & nbsp; & nbsp; >>> Print jsonate (User.objects.all () [0])
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Gebruikersnaam": "asdfasdf",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Voornaam": "asdf",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Achternaam": "asdf",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Active": false,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "E-mail": "asdf@example.com",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Is_superuser": false,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Is_staff": false,
& 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; }
Velden / Uitsluiten opties
U kunt aangeven welke velden moeten worden in series vervaardigd in de meta-opties van
je modellen. Dit heeft invloed op de rangschikking van model gevallen en QuerySets,
net als de Admin!
Voorbeeld
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; klasse 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; klasse Meta:
jsonate_exclude = (sensitive_info ")
# Dit ook zou werken:
# Jsonate_fields = (normal_info ")
Standaard is de Gebruiker model in `django.contrib.auth.models` is-aap gepatched
naar het veld wachtwoord uit te sluiten wanneer serialisatiepakket QuerySets of gevallen
Als u wilt opgeven welke velden worden in series op een per geval worden bekeken,
Gebruik `waarden ()` plaats. zoals zo
& Nbsp; & nbsp; & nbsp; >>> Jsonate (User.objects.values ("gebruikersnaam", "wachtwoord"))
& Nbsp; & nbsp; & nbsp; ... '[{"Username": "someuser", "password": "SHA1 $ f26b2 $ d03a6123487fce20aabcdef0987654321abcdef0"}]'
Opmerking: Dit is natuurlijk geen echte wachtwoord of zout :)
De JsonateResponse
`JsonateResponse` is een subklasse van HttpResponse dat bijna precies werkt
hetzelfde, behalve dat een object geaccepteerd als het gegevens in plaats van alleen
snaren. Het geeft de resulterende json als mime "application / json"
voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; van jsonate.http import JsonateResponse
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def my_view (aanvraag):
& 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; terug JsonateResponse (request.user)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Respons bevat:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {"Username": "asdfasdf", "voornaam": "asdf", "achternaam": "asdf", "active": false, "e-mail": "asdf@example.com", "is_superuser": false, " is_staff ": false," last_login ":" 2011-08-22T19: 14: 50,603531 "," id ": 5," date_joined ":" 2011-08-22T19: 14: 50,220049 "}
Decorateur
De `JsonateResponse` is geweldig, maar het leven kan nog makkelijker te krijgen! De
`@ Jsonate_request` decorateur (geïnspireerd door de ajax_request decorateur
in Django-vervelend) zal proberen om iets te nummeren teneinde rendement
(Via JsonateResponse) terug in een HttpResponse met mime-bestandstype
"Application / json"
Het enige wat het zal * niet * proberen om een serienummer is een HttpResponse.
voorbeeld:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jsonate_request
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def my_view (aanvraag):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; vorm = MijnFormulier (request.POST)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; indien form.is_valid ():
form.save ()
terug HttpResponseRedirect ("/ wat / pad /")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; anders:
terug form.errors
Met geldige invoer, de HttpResponseRedirect passeert, onaangeroerd.
Als er vormfouten het antwoord komt terug op zoek iets als
deze:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Gebruikersnaam": [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Deze gebruikersnaam is al in gebruik"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "E-mail": [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Vul een geldig e-mail."
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
Eisen
- Python
Reacties niet gevonden