Skip to content

Instantly share code, notes, and snippets.

# plusfriend/decorators.py
import json
from functools import wraps
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
def bot(view_fn):
@wraps(view_fn)
@csrf_exempt
@allieus
allieus / djangogirls-201711.py
Last active November 7, 2017 00:51
장고걸스 2017년 11월 세미나 - Azure Functions을 활용한 파이썬 크롤링 스케줄링
import os
import json
import time
import requests
from bs4 import BeautifulSoup
def get_realtime_keywords():
'네이버 검색어 크롤링을 하고 ...'
html = requests.get('https://www.naver.com/').text
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
# 네이버 Clova Face Recognition
import requests
print('사진을 다운받습니다.')
img_data = requests.get('http://file2.nocutnews.co.kr/newsroom/image/2018/02/17/20180217004538775684_0_750_1050.jpg').content
with open('강동원.jpg', 'wb') as f:
from django.views.generic import ListView
from .models import Post
class PostListView(ListView):
model = Post
def get_queryset(self):
self.q = self.request.GET.get('q', '')
qs = super().get_queryset()
@allieus
allieus / askdjango_vod_frontend_jquery_sample.html
Created September 4, 2017 08:39
AskDjango VOD, 웹프론트엔드 시작편, jQuery 샘플
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Melon 검색</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
@allieus
allieus / 01_views.py
Created August 28, 2017 10:12
CSV Sample in Django View Function
import csv
from django.shortcuts import render
def view_fn(request):
with open('test.csv', 'rt') as f:
csv_reader = csv.DictReader(f)
return render(request, 'view_fn.html', {
'csv_reader': csv_reader,
})
@allieus
allieus / 1_django_form_drf_example.py
Last active November 28, 2019 09:27
장고 외부에서 Form, Serializer 활용하기
from django.conf import settings
settings.configure(USE_I18N=False)
from django import forms
from rest_framework import serializers
class PostForm(forms.Form):
email = forms.EmailField()
@allieus
allieus / models.py
Last active August 14, 2017 02:24
장고 모델, 멤버함수 템플릿 활용 예시
from django.utils import timezone
class AccessHistory(models.Model):
start_time = models.DateTimeField()
def get_duration(self):
return timezone.now() - self.start_time
@allieus
allieus / 1_README.md
Last active September 15, 2017 03:28

파이콘에서 "케이블 영화 채널 편성표 수집하기" 세션 잘 들었습니다. (세션 페이지)

이는 페이징와 화면 렌더링 처리가 javascript로 되어있기 때문 여러 채널 수집에 Selenium을 쓰셨더라구요.

이 부분에 대해 requests를 통해 처리하는 샘플코드를 간략하게나마 작성해봤습니다.

참고한 세션 코드 저장소 : https://github.com/rubysoho07/MovieScheduler/blob/master/scheduler_core/tests.py

아래 소스코드를 참고해서, requests를 통해 보다 효율적으로 페이징 크롤링을 해보세요.

@allieus
allieus / views.py
Created July 24, 2017 13:27
CBV 에서 추가 context data 예시
from django.views.generic import ListView
from .models import Post
class PostListView(ListView):
model = Post
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['추가인자'] = '지정할 값'
return context