Zusammenfassung mehrerer Methoden für Django zum Akzeptieren von Front-End-Daten

黄舟
Freigeben: 2016-12-15 09:29:48
Original
2049 Leute haben es durchsucht

Hintergrund

Nach der Hälfte des Schreibens der Test-Toolbox bin ich heute auf ein Problem mit der Front-End- und Back-End-Dateninteraktion gestoßen, also lasst uns das gemeinsam lösen.

Umwelt

--------------------------------------------------- --- -------------------

Versionsbezogen

Betriebssystem: Mac OS X EI Caption

Python Version: 2.7

IDE: PyCharm

Django: 1.8.2

------------------------------------ ----------------------------------

Hinweis: Ich habe die Get-Methode, POST The, getestet Die Methode gilt auch für

Zeichentyp

Zeichentypdaten sind relativ einfach zu erhalten. Die Front-End-Übertragungsmethode ist wie folgt:

sendData = {
  "exporttype": exporttype,

  "bugids": bugids,

  "test": JSON.stringify({"test": "test"})

};
Nach dem Login kopieren

Im Backend von Django verwenden Sie einfach exporttype = request.GET.get("exporttype")

, um diese Daten normal abzurufen.

Hinweis: In Python2.7 sind die Daten Unicode-codiert. Wenn Sie sie verwenden möchten, müssen Sie manchmal str konvertieren

Ergebnisbeispiel:

Excle < type 'unicode '>

Array-Typ

Array-Typ-Daten abrufen Wenn Sie die Methode zum Abrufen von Zeichenfolgendaten verwenden, ist das Ergebnis „Keine“. Wir müssen diese Methode verwenden:

bugids = request.GET.getlist("bugids[]")

Die auf diese Weise erhaltenen Daten sind vom Array-Typ.

Hinweis: Die Elemente im erhaltenen Array sind Unicode-codiert und müssen irgendwann transcodiert werden

Beispiel für Ergebnisse:

•Die übergebene URL

[14/Jul/2016 11:00:41]"GET /testtools/exportbug/?exporttype=Excle&bugids%5B%5D=102&bugids%
Nach dem Login kopieren

• Erhaltene Daten

[u&#39;102&#39;, u&#39;101&#39;, u&#39;100&#39;, u&#39;99&#39;, u&#39;98&#39;, u&#39;97&#39;, u&#39;96&#39;, u&#39;95&#39;, u&#39;94&#39;, u&#39;93&#39;, u&#39;92&#39;, u&#39;91&#39;, u
Nach dem Login kopieren

Zeichentyp

Zeichentypdaten können tatsächlich als Zeichenfolgendaten betrachtet werden Um die entsprechende Zeichenfolge zu verarbeiten, formatieren Sie sie einfach mit dem JSON-Modul.

Für das Frontend ist die typische Art der Übergabe von Zeichendaten die Übergabe von JSON-Daten. Die verwendete Methode lautet daher:

"test": JSON.stringify({"test": "test"} )

Ergebnisbeispiel:

{"test":"test"}

Zugehöriger Quellcode

•Get-Methode

Get-Methode ist eine Methode in wsgi.

def GET(self):
    # The WSGI spec says &#39;QUERY_STRING&#39; may be absent.
    raw_query_string = get_bytes_from_wsgi(self.environ, &#39;QUERY_STRING&#39;, &#39;&#39;)
    return http.QueryDict(raw_query_string, encoding=self._encoding)
Nach dem Login kopieren

Die endgültige Rückgabe ist ein http.QueryDict(raw_query_string, Encoding=self._encoding)https Originaldaten und QueryDict erbt von MultiValueDict , sodass wir uns MultiValueDict einfach direkt ansehen können.

•MultiValueDict

Tatsächlich sieht der Quellcode nicht schwierig aus.

def get(self, key, default=None):
    """
    Returns the last data value for the passed key. If key doesn&#39;t exist
    or value is an empty list, then default is returned.
    """
    try:
      val = self[key]
    except KeyError:
      return default
    if val == []:
      return default
    return val
  
  def getlist(self, key, default=None):
    """
    Returns the list of values for the passed key. If key doesn&#39;t exist,
    then a default value is returned.
    """
    try:
      return super(MultiValueDict, self).__getitem__(key)
    except KeyError:
      if default is None:
        return []
      return default
  
  def __getitem__(self, key):
    """
    Returns the last data value for this key, or [] if it&#39;s an empty list;
    raises KeyError if not found.
    """
    try:
      list_ = super(MultiValueDict, self).__getitem__(key)
    except KeyError:
      raise MultiValueDictKeyError(repr(key))
    try:
      return list_[-1]
    except IndexError:
      return []
Nach dem Login kopieren

Die getlist-Methode integriert alle Daten und gibt sie zurück.

Die obige Zusammenfassung mehrerer Methoden für Django zum Akzeptieren von Front-End-Daten ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann. Weitere verwandte Artikel finden Sie im PHP-Chinesen Website (www.php.cn)!

.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage