[PYTHON] Verwenden Sie Django, um Tweet-Daten zu speichern

Der Typ, der Twitter-Tweet-Daten mit Django speichert

Ich habe eine Funktion zum Speichern von Tweet-Daten auf dem Client hinzugefügt, den ich zuletzt erstellt habe. Es ist überhaupt nicht klug als Methode, aber es dient auch als Bericht, dass es gut funktioniert hat.

Letztes Mal> http://qiita.com/Gen6/items/11fa5265053da95fcf0b

Vorbereitung

mysite/settings.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Schreiben Sie models.py

Der Teil, über den ich in Django (letztes Jahr) gestolpert bin, heißt models.py. Ich war mir nicht sicher, was ich tatsächlich tat, aber es ist wie das Definieren einer sogenannten Datenbanktabelle.

myapp/models.py


from django.db import models


class Supermodel(models.Model):
    user_name = models.CharField(max_length=140)
    user_id = models.CharField(max_length=140)
    user_img = models.CharField(max_length=140)
    user_text = models.TextField(null=True)
    user_created_at = models.CharField(max_length=140)

    def __str__(self):
        return self.user_name

Ich möchte den Benutzernamen, die ID, die Miniaturansicht, den Textkörper, das Datum und die Uhrzeit aus den Tweet-Daten speichern, damit sie so geschrieben sind. Ich habe mich gefragt, wie der Name Supermodel lautet, aber ich habe ihn geschrieben, also kann ich nichts dagegen tun.

Schreiben Sie admin.py

Ich wollte auch überprüfen, ob es tatsächlich auf dem Verwaltungsbildschirm von Django funktioniert, also werde ich es auch hier schreiben.

myapp/admin.py


from django.contrib import admin
from myapp.models import Supermodel


class SupermodelAdmin(admin.ModelAdmin):
    list_display = ('id','user_id','user_name','user_img','user_text','user_created_at')

admin.site.register(Supermodel,SupermodelAdmin)

Wandern

$ python manage.py makemigrations myapp
$ python manage.py migrate

Wenn erfolgreich, fahren Sie mit dem nächsten fort. Um ehrlich zu sein, bin ich mir da nicht ganz sicher, deshalb denke ich, dass es besser ist, die Beschreibungen anderer Leute zu lesen.

Views.py bearbeiten

myapp/views.py



from requests_oauthlib import OAuth1Session
import time, calendar
import datetime
import json
import re
import os
import requests
import sys, codecs
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)

from django.http.response import HttpResponse
from django.shortcuts import render
from myapp.models import Supermodel


def index(request):

    msg = request.GET.get('words')

    C_KEY = '**************************'
    C_SECRET = '**************************'
    A_KEY = '**************************'
    A_SECRET = '**************************'

    url = 'https://api.twitter.com/1.1/statuses/update.json'
    params = {'status': msg,'lang': 'ja'}
    tw = OAuth1Session(C_KEY,C_SECRET,A_KEY,A_SECRET)
    req = tw.post(url, params = params)


    url = 'https://api.twitter.com/1.1/statuses/home_timeline.json'
    params = {'count': 1}
    req = tw.get(url, params = params)

    if req.status_code == 200:
        timeline = json.loads(req.text)
        limit = req.headers['x-rate-limit-remaining']

        for tweet in timeline:
            Text = (tweet['text'])
            User = (tweet['user']['screen_name'])
            Name = (tweet['user']['name'])
            Img = (tweet['user']['profile_image_url'])
            Created_at = YmdHMS(tweet['created_at'])

            data = Supermodel()
            data.user_id = User
            data.user_name = Name
            data.user_img = Img
            data.user_text = Text
            data.user_created_at = Created_at
            data.save()

            Message = {
                'Words': msg,
                'timeline': timeline,
                'API_limit': limit,
                'Text': Text,
                'User': User,
                'Name': Name,
                'Img': Img,
                'Created_at': Created_at,
            }

            return render(request, 'index.html', Message)

    else:
        Error = {
            'Error_message': 'API eingeschränkt',
        }
        return render(request, 'index.html', Error)


def YmdHMS(created_at):
    time_utc = time.strptime(created_at, '%a %b %d %H:%M:%S +0000 %Y')
    unix_time = calendar.timegm(time_utc)
    time_local = time.localtime(unix_time)
    return int(time.strftime('%Y%m%d%H%M%S', time_local))

Suimasen mit einem schmutzigen Code ist jetzt vollständig.

スクリーンショット-2016-10-25-17.17.jpg

Sie können dies unter localhost / admin überprüfen. Es ist wirklich einfach. Tatsächlich.

Wenn Sie die Such-API verwenden, können Sie die Suchergebnisse in die Datenbank importieren.

Recommended Posts

Verwenden Sie Django, um Tweet-Daten zu speichern
Internationalisierung mit Django
CRUD mit Django
Speichern Sie mehrere Modelle in einem Formular mit Django
Generieren und veröffentlichen Sie Dummy-Bilddaten mit Django
Teilen Sie Daten mit Django (3) in projektähnliche Einheiten.
Ich habe versucht, die Daten mit Zwietracht zu speichern
Speichern Sie Daten zum Flashen mit STM32 Nucleo Board
Teilen Sie Daten mit Django in projektähnliche Einheiten
Authentifizieren Sie Google mit Django
Datenanalyse mit Python 2
Laden Sie Dateien mit Django hoch
Entwicklungsverdauung mit Django
Speichern Sie Speicher mit `` __slots__``
PDF mit Django ausgeben
Markdown-Ausgabe mit Django
Twitter OAuth mit Django
Daten mit TensorFlow lesen
Erste Schritte mit Django 1
Mail mit Django senden
Datei-Upload mit Django
Datenvisualisierung mit Pandas
Datenmanipulation mit Pandas!
Verwenden Sie WENIGER mit Django
Daten mit Pandas mischen
Pooling mechanisieren mit Django
Datenerweiterung mit openCV
Verwenden Sie MySQL mit Django
Daten mit Scipy normieren
Datenanalyse mit Python
Django ab heute
LADEN SIE DATEN mit PyMysql
Erste Schritte mit Django 2
Mach Django mit CodeStar (Python3.6.8, Django2.2.9)
Betten Sie Audiodaten in Jupyter ein
Zeichnen Sie Excel-Daten mit matplotlib (1)
Fangen Sie mit Django an! ~ Tutorial ⑤ ~
Künstliche Datengenerierung mit Numpy
Minimale Konfigurations-Website-Umgebung mit Django
Erstellen Sie eine API mit Django
Extrahieren Sie Twitter-Daten mit CSV
Stellen Sie Django serverlos mit Lambda bereit
Python3 + Django ~ Mac ~ mit Apache
Speichern Sie Bilder mit Web Scraping
Erste Schritte mit Python Django (1)
Erstellen Sie eine Homepage mit Django
Fangen Sie mit Django an! ~ Tutorial ④ ~
Lernen Sie neue Daten mit PaintsChainer
Erste Schritte mit Python Django (4)
Binarisieren Sie Fotodaten mit OpenCV
Zeichnen Sie Excel-Daten mit matplotlib (2)
Kombinieren Sie Fast API mit Django ORM
Fangen Sie mit Django an! ~ Tutorial ⑥ ~
Tweet mit Bild in Python
Von Django erfasste Daten wurden weitergegeben
Führen Sie eine AES-Verschlüsselung mit DJango durch
Django-Dateneingabe dumpdata loaddata
Einführung in Python Django (6)
Kombiniere zwei Bilder mit Django
Erste Schritte mit Django mit PyCharm