質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1327閲覧

Djangoのテンプレートで繰り返しを表示させる部分で上手く表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/07 05:14

編集2020/05/08 07:20

Djangoのテンプレートで{% for ... %}
を使って繰り返しをしようとして調べつつ色々やっていますが上手く表示されずエラーとなってしまい困っています。

やりたいことは、ツイッターのタイムラインをからツイートを5つ取得して、それをテンプレートフォルダの中のindex.htmlに表示させることです。

コードは以下です↓

views.py

views.py

1import time 2import calendar 3import datetime 4import json 5import sys 6import codecs 7from django.shortcuts import render 8 9# Create your views here. 10from requests_oauthlib import OAuth1Session 11 12sys.stdout = codecs.getwriter('utf-8')(sys.stdout) 13 14from django.http.response import HttpResponse 15 16 17# def index(request): 18# msg = request.GET.get('words') 19 20C_KEY = '' 21C_SECRET = '' 22A_KEY = '' 23A_SECRET = '' 24 25url = 'https://api.twitter.com/1.1/statuses/update.json' 26# params = {'status': 'lang': 'ja'} 27tw = OAuth1Session(C_KEY, C_SECRET, A_KEY, A_SECRET) 28req = tw.post5(url, params=params) 29 30url = 'https://api.twitter.com/1.1/statuses/home_timeline.json' 31params = {'count': 5} 32req = tw.get(url, params=params) 33 34if req.status_code == 200: 35 timeline = json.loads(req.text) 36 print(timeline) 37 limit = req.headers['x-rate-limit-remaining'] 38 39 for tweet in timeline: 40 Text = (tweet['text']) 41 User = (tweet['user']['screen_name']) 42 Name = (tweet['user']['name']) 43 Img = (tweet['user']['profile_image_url']) 44 Created_at = YmdHMS(tweet['created_at']) 45 46 data = TwitterModel() 47 data.user_id = User 48 data.user_name = Name 49 data.user_img = Img 50 data.user_text = Text 51 data.user_created_at = Created_at 52 data.save() 53 54 Message = { 55 'Words': msg, 56 'timeline': timeline, 57 'API_limit': limit, 58 'Text': Text, 59 'User': User, 60 'Name': Name, 61 'Img': Img, 62 'Created_at': Created_at, 63 } 64 65 # return render(request, 'index.html', Message) 66 67else: 68 Error = { 69 'Error_message': 'API制限中', 70 } 71 # return render(request, 'index.html', Error) 72 73 74def YmdHMS(created_at): 75 time_utc = time.strptime(created_at, '%a %b %d %H:%M:%S +0000 %Y') 76 unix_time = calendar.timegm(time_utc) 77 time_local = time.localtime(unix_time) 78 return int(time.strftime('%Y%m%d%H%M%S', time_local)) 79

templates/index.html

index.html

1<html> 2<head> 3 <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> 4 <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"> 5</head> 6<body> 7{% for Message in timeline %} 8<table border="1"> 9 <tr> 10 <th>API_limit</th> 11 <th>画像</th> 12 <th>ツイート内容</th> 13 <th>名前</th> 14 <th>日時</th> 15 </tr> 16 <tr> 17 <td>{{ API_limit }}</td> 18 <td><img src="{{ Img }}" /></td> 19 <td>{{ Text }}</td> 20 <td>{{ Name }}</td> 21 <td>{{ Created_at }}</td> 22 </tr> 23</table> 24{% endfor %} 25<h2>Error_message</h2> 26<h2>{{ Error_message }}</h2> 27</body> 28</html>

*forのところに:が入っていたので、削除しましたが思い通りに動いてくれません。

環境
Python3.7.6
Django 3.0
Windows10
仮想環境:venv

以上となります。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

HTML

1{% for Message in timeline: %}

HTML

1{% for Message in timeline %}

コロンはいりません。

投稿2020/05/07 05:41

ForestSeo

総合スコア2722

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/07 05:44

ありがとうございます。ご指摘助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問