[PYTHON] Utilisez Django pour enregistrer les données de tweet

Le gars qui enregistre les données de tweet Twitter avec Django

J'ai ajouté une fonction pour enregistrer les données de tweet sur le client que j'ai créé la dernière fois. Ce n'est pas du tout une méthode intelligente, mais cela sert également à indiquer que cela a bien fonctionné.

Dernière fois> http://qiita.com/Gen6/items/11fa5265053da95fcf0b

Préparation

mysite/settings.py


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

Ecrire models.py

La partie sur laquelle je suis tombé par hasard dans Django (l'année dernière) s'appelle models.py. Je n'étais pas sûr de ce que je faisais réellement, mais c'est comme définir une soi-disant table de base de données.

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

Je veux enregistrer le nom d'utilisateur, l'ID, la vignette, le corps du texte, la date et l'heure à partir des données du tweet, donc c'est écrit comme ça. Je me demandais quel était le nom de Supermodel, mais je l'ai écrit, donc je ne peux pas m'en empêcher.

Écrivez admin.py

Je voulais aussi vérifier si cela fonctionne réellement depuis l'écran de gestion de Django, je vais donc l'écrire ici aussi.

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)

émigrer

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

En cas de succès, passez à la suivante. Pour être honnête, je ne suis pas tout à fait sûr de cela, donc je pense qu'il vaut mieux lire les descriptions des autres.

Modifier views.py

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 restreinte',
        }
        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 avec un code sale est maintenant terminé.

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

Vous pouvez le vérifier sur localhost / admin. C'est vraiment simple. Réellement.

Si vous utilisez l'API de recherche, vous pouvez importer les résultats de la recherche dans la base de données.

Recommended Posts

Utilisez Django pour enregistrer les données de tweet
Internationalisation avec Django
CRUD avec Django
Enregistrez plusieurs modèles sous un seul formulaire avec Django
Générer et publier des données d'image factice avec Django
Divisez les données en unités de type projet avec Django (3)
J'ai essayé de sauvegarder les données avec discorde
Enregistrez les données pour flasher avec la carte Nucleo STM32
Divisez les données en unités de type projet avec Django
Authentifier Google avec Django
Analyse de données avec python 2
Télécharger des fichiers avec Django
Résumé du développement avec Django
Économisez de la mémoire avec `` __slots__``
Sortie PDF avec Django
Sortie Markdown avec Django
Twitter OAuth avec Django
Lecture de données avec TensorFlow
Premiers pas avec Django 1
Envoyer des e-mails avec Django
Téléchargement de fichiers avec django
Visualisation des données avec les pandas
Manipulation des données avec les Pandas!
Utilisez LESS avec Django
Mélangez les données avec les pandas
La mutualisation mécanise avec Django
Augmentation des données avec openCV
Utiliser MySQL avec Django
Normariser les données avec Scipy
Analyse de données avec Python
Django à partir d'aujourd'hui
CHARGER DES DONNÉES avec PyMysql
Premiers pas avec Django 2
Faites Django avec CodeStar (Python3.6.8, Django2.2.9)
Incorporer des données audio avec Jupyter
Graphique des données Excel avec matplotlib (1)
Lancez-vous avec Django! ~ Tutoriel ⑤ ~
Génération artificielle de données avec numpy
Environnement de site Web de configuration minimale avec django
Créer une API avec Django
Extraire les données Twitter avec CSV
Déployer Django sans serveur avec Lambda
Python3 + Django ~ Mac ~ avec Apache
Enregistrez des images avec le web scraping
Premiers pas avec Python Django (1)
Créer une page d'accueil avec django
Lancez-vous avec Django! ~ Tutoriel ④ ~
Apprenez de nouvelles données avec PaintsChainer
Premiers pas avec Python Django (4)
Binariser les données photo avec OpenCV
Graphique des données Excel avec matplotlib (2)
Combinez Fast API avec Django ORM
Lancez-vous avec Django! ~ Tutoriel ⑥ ~
Tweet avec image en Python
Données acquises par Django reliées
Effectuer le cryptage AES avec DJango
django data input dumpdata loaddata
Introduction à Python Django (6)
Combinez deux images avec Django
Premiers pas avec Django avec PyCharm