diff --git a/db.sqlite3 b/db.sqlite3 index 5f305b2..ff2f937 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/djstack/__pycache__/__init__.cpython-35.pyc b/djstack/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000..259177e Binary files /dev/null and b/djstack/__pycache__/__init__.cpython-35.pyc differ diff --git a/djstack/__pycache__/settings.cpython-35.pyc b/djstack/__pycache__/settings.cpython-35.pyc new file mode 100644 index 0000000..ec02410 Binary files /dev/null and b/djstack/__pycache__/settings.cpython-35.pyc differ diff --git a/djstack/__pycache__/urls.cpython-35.pyc b/djstack/__pycache__/urls.cpython-35.pyc new file mode 100644 index 0000000..ec9871f Binary files /dev/null and b/djstack/__pycache__/urls.cpython-35.pyc differ diff --git a/djstack/__pycache__/wsgi.cpython-35.pyc b/djstack/__pycache__/wsgi.cpython-35.pyc new file mode 100644 index 0000000..651d722 Binary files /dev/null and b/djstack/__pycache__/wsgi.cpython-35.pyc differ diff --git a/djstack/settings.py b/djstack/settings.py index 93a3c33..7e9239a 100644 --- a/djstack/settings.py +++ b/djstack/settings.py @@ -56,7 +56,7 @@ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': ['templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ diff --git a/djstack/test_tags.py b/djstack/test_tags.py new file mode 100644 index 0000000..3fac19a --- /dev/null +++ b/djstack/test_tags.py @@ -0,0 +1,8 @@ +from django import template + + +register = template.Library() + +@register.filter(name='split_tags') +def split_tags(value,args): + return value.split(',') \ No newline at end of file diff --git a/stackapi/__pycache__/__init__.cpython-35.pyc b/stackapi/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000..6891139 Binary files /dev/null and b/stackapi/__pycache__/__init__.cpython-35.pyc differ diff --git a/stackapi/__pycache__/admin.cpython-35.pyc b/stackapi/__pycache__/admin.cpython-35.pyc new file mode 100644 index 0000000..0153717 Binary files /dev/null and b/stackapi/__pycache__/admin.cpython-35.pyc differ diff --git a/stackapi/__pycache__/models.cpython-35.pyc b/stackapi/__pycache__/models.cpython-35.pyc new file mode 100644 index 0000000..ed9bbf1 Binary files /dev/null and b/stackapi/__pycache__/models.cpython-35.pyc differ diff --git a/stackapi/__pycache__/serializer.cpython-35.pyc b/stackapi/__pycache__/serializer.cpython-35.pyc new file mode 100644 index 0000000..8dd4559 Binary files /dev/null and b/stackapi/__pycache__/serializer.cpython-35.pyc differ diff --git a/stackapi/__pycache__/urls.cpython-35.pyc b/stackapi/__pycache__/urls.cpython-35.pyc new file mode 100644 index 0000000..818858c Binary files /dev/null and b/stackapi/__pycache__/urls.cpython-35.pyc differ diff --git a/stackapi/__pycache__/views.cpython-35.pyc b/stackapi/__pycache__/views.cpython-35.pyc new file mode 100644 index 0000000..fb640ae Binary files /dev/null and b/stackapi/__pycache__/views.cpython-35.pyc differ diff --git a/stackapi/migrations/0002_question_hlink.py b/stackapi/migrations/0002_question_hlink.py new file mode 100644 index 0000000..aa64898 --- /dev/null +++ b/stackapi/migrations/0002_question_hlink.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.1 on 2019-04-22 05:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stackapi', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='question', + name='hlink', + field=models.CharField(default='/', max_length=250), + preserve_default=False, + ), + ] diff --git a/stackapi/migrations/__pycache__/0001_initial.cpython-35.pyc b/stackapi/migrations/__pycache__/0001_initial.cpython-35.pyc new file mode 100644 index 0000000..c9a2a4f Binary files /dev/null and b/stackapi/migrations/__pycache__/0001_initial.cpython-35.pyc differ diff --git a/stackapi/migrations/__pycache__/0002_question_hlink.cpython-35.pyc b/stackapi/migrations/__pycache__/0002_question_hlink.cpython-35.pyc new file mode 100644 index 0000000..3228f77 Binary files /dev/null and b/stackapi/migrations/__pycache__/0002_question_hlink.cpython-35.pyc differ diff --git a/stackapi/migrations/__pycache__/__init__.cpython-35.pyc b/stackapi/migrations/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000..3fec666 Binary files /dev/null and b/stackapi/migrations/__pycache__/__init__.cpython-35.pyc differ diff --git a/stackapi/models.py b/stackapi/models.py index ee3197b..5a2784d 100644 --- a/stackapi/models.py +++ b/stackapi/models.py @@ -6,6 +6,7 @@ class Question(models.Model): vote_count = models.IntegerField(default=0) views = models.CharField(max_length=50) tags = models.CharField(max_length=250) + hlink = models.CharField(max_length=250) def __str__(self): return self.question diff --git a/stackapi/templates/stackapi/home.html b/stackapi/templates/stackapi/home.html new file mode 100644 index 0000000..4e52ae5 --- /dev/null +++ b/stackapi/templates/stackapi/home.html @@ -0,0 +1,35 @@ + + + + + BS4 Stackoverflow + + +
+
+

Latest Questions from Stack Overflow!

+ Learn more +
+{% for q in qs %} + +{% endfor %} +
+ + + + + + \ No newline at end of file diff --git a/stackapi/urls.py b/stackapi/urls.py index 3b0e215..72cf7bd 100644 --- a/stackapi/urls.py +++ b/stackapi/urls.py @@ -10,4 +10,5 @@ path('', index, name="index"), path('', include(router.urls)), path('latest', latest, name="latest"), + path('results', latest, name="results"), ] diff --git a/stackapi/views.py b/stackapi/views.py index 8626192..3a7122d 100644 --- a/stackapi/views.py +++ b/stackapi/views.py @@ -4,16 +4,18 @@ from .models import Question from .serializer import QuestionSerializer from bs4 import BeautifulSoup - import requests import json - # Create your views here. def index(request): return HttpResponse("Success") +def showQuestions(request): + questions = Question.objects.all() + return render(request,'stackapi/home.html',{'questions':questions}) + class QuestionAPI(viewsets.ModelViewSet): queryset = Question.objects.all() @@ -25,21 +27,29 @@ def latest(request): res = requests.get("https://stackoverflow.com/questions") soup = BeautifulSoup(res.text, "html.parser") - + txt = "" + tag = [] questions = soup.select(".question-summary") + Question.objects.all().delete() for que in questions: q = que.select_one('.question-hyperlink').getText() vote_count = que.select_one('.vote-count-post').getText() views = que.select_one('.views').attrs['title'] tags = [i.getText() for i in (que.select('.post-tag'))] + tag = que.select_one('.question-hyperlink').attrs['href'] + hlink = tag question = Question() question.question = q question.vote_count = vote_count question.views = views question.tags = tags - + question.hlink = hlink question.save() - return HttpResponse("Latest Data Fetched from Stack Overflow") + + + + qs = Question.objects.all().order_by('views') + return render(request,'stackapi/home.html',{'qs':qs}) except e as Exception: - return HttpResponse(f"Failed {e}") + return HttpResponse("Failed {e}")