Python Django等待完成Selenium def(),然后返回页面-如何更改该页面?
为了练习,我已经使用Selenium For Instagram编写了一个机器人程序来自动完成一些工作,现在为了进一步练习,我想创建一个简单的网页来控制我的机器人程序(如启动/停止和一些选项) 我已经用Django编写了基本代码,它可以工作,但是。。。通常,当Python Django等待完成Selenium def(),然后返回页面-如何更改该页面?,python,django,selenium,django-forms,django-views,Python,Django,Selenium,Django Forms,Django Views,为了练习,我已经使用Selenium For Instagram编写了一个机器人程序来自动完成一些工作,现在为了进一步练习,我想创建一个简单的网页来控制我的机器人程序(如启动/停止和一些选项) 我已经用Django编写了基本代码,它可以工作,但是。。。通常,当def runInstabot(请求)启动时,它会等待Selenium函数(bot.login()和bot.search())完成,然后返回页面。如何确保它将返回页面,同时Selenium函数将起作用,或者更好,首先它将返回页面,然后Sel
def runInstabot(请求)
启动时,它会等待Selenium函数(bot.login()和bot.search()
)完成,然后返回页面。如何确保它将返回页面,同时Selenium函数将起作用,或者更好,首先它将返回页面,然后Selenium脚本启动
i、 e.更准确地说:
我想输入一些数据(现在是登录和密码,但以后会更多),然后它将在下一页呈现,同时/或下一页bot.login()和bot.search()
启动
views.py:
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.http import HttpResponseRedirect
from bott.forms import LoginInstagramForm
from django.views.generic.edit import FormView
from instagram.bot import Instagram
bot = Instagram()
class InstabotView(FormView):
template_name = 'instabot.html'
form_class = LoginInstagramForm
success_url = '/runinstabot/'
def form_valid(self,form):
form.clean_instagram()
return super().form_valid(form)
def runInstabot(request):
print('Welcome here')
if request.method == 'POST':
runInstabot.login = request.POST.get('login')
runInstabot.password = request.POST.get('password')
form = LoginInstagramForm(request.POST or None)
if form.is_valid():
bot.login(runInstabot.login, runInstabot.password)
bot.search()
return render(request, 'youbot.html')
else:
form = LoginInstagramForm()
模板:
{%csrf_令牌%}
{{form.login}
{{form.password}}
Instagram有一个API,你应该使用它,而不是试图用selenium为前端供电。是的,我知道,但我更喜欢使用selenium,因为我希望将来使用它,可能我也会遇到同样的问题
forms.py
from django import forms
from django.contrib.auth import get_user_model
from django.contrib.auth.models import User
class LoginInstagramForm(forms.Form):
login = forms.CharField(label='login')
password = forms.CharField(widget=forms.PasswordInput)
urls.py
from django.conf.urls import url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from .views import home_page, main_page
from instagram.views import InstabotView, runInstabot
urlpatterns = [
url(r'^$', home_page, name='home'),
url(r'^main/', main_page, name='main'),
url(r'^instabot/', InstabotView.as_view(), name='instabot'),
url(r'^runinstabot/', runInstabot, name='runinstabot'),
url(r'^admin/', admin.site.urls),
]
template:
<form action="/runinstabot/" method="post" name='btn'>
{% csrf_token %}
{{ form.login }}
{{ form.password }}
<input type="submit" value="Submit">
</form>