0
나는 django에서 작업 중이며 기본 URL의 링크에서 전자 메일을 찾는 전자 메일 크롤러를 빌드했습니다 ... 나는 db.sqlite3 파일에 결과를 입력하고 싶습니다. 사이트 데이터베이스 내 크롤러는 backround에서 셀러리 작업으로 작동합니다. 작업을 끝까지 데이터베이스에 추가 할 수있는 방법은 무엇입니까? 나는 post 메소드를 사용하려고하는데 행운이 없다.Django 게시 작업 결과
는 tasks.py
from celery.utils.log import get_task_logger
from .forms import CrawlUpForm
from .craw import crawler
import time
app = Celery(broker='amqp://')
@app.task
def startcraw(base,url,emails):
mylist= crawler(base,url,emails)
for em in mylist:
new_entry = Crawler(site=base, max_links=20, max_emails=333,emails=em)
new_entry.save()
answer= ', '.join(mylist)
return answer
내가 SQL 데이터베이스에 대한 답변을 추가 할
은 (는 이메일, 링크 및 기타 물건을 포함)내 views.py :
from tasks import startcraw
import time
def home(request):
form = SignUpForm(request.POST or None)
if form.is_valid():
save_it= form.save(commit=False)
save_it.save()
messages.success(request,"Working, please wait........")
baseurl=form.cleaned_data['site']
maxemails=form.cleaned_data['max_emails']
maxurl=form.cleaned_data['max_links']
startcraw.delay(base=baseurl,url=maxurl,emails=maxemails)
return HttpResponseRedirect('/done/')
return render_to_response("signup.html",locals(),context_instance=RequestContext(request))
models.py :
class Crawler(models.Model):
site=models.CharField(max_length=250,null=True,blank=False)
max_links=models.IntegerField(default=5,max_length=10,blank=True)
max_emails=models.IntegerField(default=5,max_length=10,blank=True)
emails = models.CharField(max_length=999999,null=True,blank=False)
models.py를 추가합니다. 내 tasks.py 내 이메일 목록 mylist var에 수신 다른 변수에 대해 신경 쓰지 마십시오 ...
직접 추가하는 방법을 알지 못했습니다 ... 약간의 예를 들어 주시겠습니까? –
코드에서 모델 인스턴스를 만드는 방법을 알고 있습니까? 그렇지 않다면 Django 튜토리얼을 실행해야한다. –
나는 거기에서 이해하려고 노력했다. 그러나 나는 do not가 일하는 것을 tring하고있다. –