| django-importeur Gegevensimporteurs voor Django-modellen |
Download nu |
django-importeur Rangschikking & Samenvatting
- Vergunning:
- Other/Proprietary Li...
- Naam uitgever:
- Enrico Batista da Luz
- Uitgever website:
- http://github.com/ricobl/
django-importeur Tags
django-importeur Beschrijving
Gegevensimporteurs voor Django-modellen Django-importeur is een Django-plug-in die basisfunctionaliteit biedt om gegevens in Django-modellen te importeren, waardoor een eenvoudige creatie van aangepaste importeurs mogelijk is. Zeer uitgebreide en aanpasbare.data-indelingen worden vaak denormalized. Het project is niet gericht op de "all-in-one" / "elke indelingsimporteur, maar om een schoon te maken een flexibele interface om aangepaste importeurs te schrijven. Oageacties spreekt luider dan woorden, dus laten we doorgaan met een praktisch Voorbeeld. Let's zeggen dat u een nieuwsaanvraag in uw project hebt en gegevens wilt importeren van een XML-bestand: - 1 2009-04-20 Django-importeur vrijgegeven Tegenwoordig is Dango-importeur uitgebracht ...
... de modeldefinitie: Class Entry (Models.model): # Externe bron-ID , om reeds geïmporteerde items te volgen External_id = Models.integerfield () # NIEUWSININGS Eigenschappen Headline = Models.Charfield (max_Length = 100) Creation_Date = Models.Datetimield () Pub_date = Models.Datetimefield () Story = Models.textfield () Nu begint de magie, laten we de importeur schrijven. We moeten elk veld van ons nieuwsinvoermodel vullen, de opmakende datum van de reeks van de reeks naar een Python-datum omzetten en de publicatiedatum in plannen tot het volgende uur. Van Django_importer.importers.xml Importeren XmlimporterFrom DateDime Import DateTime, TimedeltAclass Myxmlimporter (XMLIMPORTER): Klasse Meta (XMLIMPORTER.META): # XMLIMPORTER SPECIFIEKE META-eigenschap: de NUNDENAME die een XML-item Item_tag_name = 'Item' identificeert # Een lijst met modelveldnamen die naar verwachting van de bronvelden worden geïmporteerd = ('External_ID', 'Headline', 'Creation_date', 'verhaal') # een woordenboekmapping Model veldnamen naar gegevensbron Identifiers # in dit geval Mappings Punten naar XML-knooppunten Field_Map = {'extern_id': 'id', 'creatie_date': 'Datum', 'Headline' : 'Titel', 'Story': 'Content',} # lijst met velden die een item identificeert als unieke unieke_fields = ('extern_id',) Def parse_creation_date (self, item, field_name, source_name): # Krijg de waarde `source_name `Van de XML` Item` voor het veld `Field_name` # in andere w Ords: lees de inhoud van de datum` Node om het veld `Creatie_datate` van ons model te vullen. Val = Self.get_Value (item, source_name) # Converteren naar een Python Datum Date DateTime (* Val.Split ('-')) Def Save_item (Zelf, Item, Data, Exemplaar, Commit = True): # Als het item is NIEUW, INSTELLEN Een publicatiedatum als niet-aan-exemplaar.pk: exemplaar.pub_date = datetime.now () + Timedelta (uren = 1) Als commit: exemplaar.save () Retourneer InstanceEond dat is het. Nu kunnen we onze importeur en beginnen met parsing.van.FOM NIEUWS IMPORT INDINGFROM NIEUWS.IMPORTERS importeren MyxmlimporterImporter = Myxmlimporter (invoer, 'pad / naar / source.xml') importeur.parse ()
django-importeur Gerelateerde software