def changepswd(request): if (islogin(request) == False): return HttpResponseRedirect("/") emailid = request.session.get("email", None) name = request.session.get("name", None) if request.method == "POST": form = PasswordForm(request.POST) if form.is_valid(): try: user = RegisteredUsers.objects.get(email=emailid) user.pswd = form.cleaned_data["new_pswd"] user.save() c = {} c.update(csrf(request)) c.update({"emailid": emailid, "user": name}) c.update({"updated": True}) return render_to_response("changepswd.html", c) except: return HttpResponse( "Error in Connection with Database , Try again ") else: c = {} c.update(csrf(request)) c.update({"passwordform": form}) c.update({"emailid": emailid, "user": name}) #return HttpResponse(str(vars(form))) return render_to_response("changepswd.html", c) c = {} c.update(csrf(request)) c.update({"emailid": emailid}) return render_to_response("changepswd.html", c)
def search(request): load_location = "no" try: load_location = request.GET["load_location"] except: load_location = "no" if islogin(request): # city = request.GET.get("srch_city") bloodgroup = request.GET.get("srch_bloodgroup") location = request.GET.get("reg_location") # age = None age = datetime.date.today() page = request.GET.get("page") if page == None: page = 1 page = int(page) if city != None and bloodgroup != None and location != None: today = datetime.date.today() three_months = timedelta(days=90) eighteen_years = timedelta(days=6570) results = RegisteredUsers.objects.filter( city=city, bloodgroup=bloodgroup, location=location).exclude( dolbd__gt=(today - three_months)).exclude( dob__gt=(today - eighteen_years)) # results = RegisteredUsers.objects.get(city=city,bloodgroup=bloodgroup).exclude(dolbd__gt=(today-three_months)) # age = today - age # age = today - results.dob for res in results: dt = today - res.dob res.age = dt.days / 365 paginator = Paginator(results, 5) name = request.session.get("name", None) c = {} c.update({"user": name}) c.update({ "city": city, "bloodgroup": bloodgroup, "location": location }) c.update({"age": age}) try: results = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. results = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. results = paginator.page(paginator.num_pages) c.update({"results": results}) return render_to_response("search.html", c) name = request.session.get("name", None) c = {} c.update({"user": name}) c.update({"city": city, "bloodgroup": bloodgroup}) return render_to_response('search.html', c) else: return HttpResponseRedirect("/")
def changepswd(request): if(islogin(request)==False): return HttpResponseRedirect("/") emailid = request.session.get("email",None) name = request.session.get("name",None) if request.method =="POST": form = PasswordForm(request.POST) if form.is_valid(): try: user = RegisteredUsers.objects.get(email=emailid) user.pswd = form.cleaned_data["new_pswd"] user.save() c= {} c.update(csrf(request)) c.update({"emailid":emailid,"user":name}) c.update({"updated":True}) return render_to_response("changepswd.html",c) except: return HttpResponse("Error in Connection with Database , Try again ") else: c={} c.update(csrf(request)) c.update({"passwordform":form}) c.update({"emailid":emailid,"user":name}) #return HttpResponse(str(vars(form))) return render_to_response("changepswd.html",c) c={} c.update(csrf(request)) c.update({"emailid":emailid}) return render_to_response("changepswd.html",c)
def search(request): load_location = "no" try: load_location = request.GET["load_location"] except: load_location = "no" if islogin(request): # city = request.GET.get("srch_city") bloodgroup = request.GET.get("srch_bloodgroup") location = request.GET.get("reg_location") # age = None age = datetime.date.today() page = request.GET.get("page") if page == None: page = 1 page = int(page) if city != None and bloodgroup != None and location !=None: today = datetime.date.today() three_months = timedelta(days=90) eighteen_years = timedelta(days=6570) results = RegisteredUsers.objects.filter(city=city,bloodgroup=bloodgroup,location=location).exclude(dolbd__gt=(today-three_months)).exclude(dob__gt=(today-eighteen_years)) # results = RegisteredUsers.objects.get(city=city,bloodgroup=bloodgroup).exclude(dolbd__gt=(today-three_months)) # age = today - age # age = today - results.dob for res in results: dt = today - res.dob res.age = dt.days / 365 paginator = Paginator(results, 5) name = request.session.get("name",None) c={} c.update({"user":name}) c.update({"city":city,"bloodgroup":bloodgroup,"location":location}) c.update({"age":age}) try: results = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. results = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. results = paginator.page(paginator.num_pages) c.update({"results":results}) return render_to_response("search.html",c) name = request.session.get("name",None) c={} c.update({"user":name}) c.update({"city":city,"bloodgroup":bloodgroup}) return render_to_response('search.html',c) else: return HttpResponseRedirect("/")
def get_xsrf(url): if islogin() is None: raise Exception('还未登录,请先执行auth.py') header = {'Referer': url,'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36', 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Host':'www.zhihu.com' } requests.headers = header r = requests.get(url) results = re.compile(r"\<input\stype=\"hidden\"\sname=\"_xsrf\"\svalue=\"(\S+)\"", re.DOTALL).findall(r.text) if len(results) < 1: return None return results[0]
def profile(request): if (islogin(request)): if request.method == "POST": form = ProfileForm(request.POST) if form.is_valid(): user = RegisteredUsers.objects.get( email=request.session.get("email", None)) try: user.email = form.cleaned_data["prof_emailid"] user.name = form.cleaned_data["prof_name"] user.dolbd = form.cleaned_data["prof_dolbd"] user.mobile = str(form.cleaned_data["prof_mobile"]) user.city = form.cleaned_data["prof_city"] # user.location = form.cleaned_data["reg_location"] user.save() except: return HttpResponse( "Error in Connection with Database , Please Try again " + str(vars(user))) c = {} c.update(csrf(request)) email = request.session.get('email', None) name = request.session.get('name', None) c.update({"oldemail": email, "user": name}) c.update({"userprof": user, "updated": True}) return render_to_response('profile.html', c) else: c = {} email = request.session.get('email', None) name = request.session.get('name', None) c.update({"oldemail": email, "user": name}) c.update(csrf(request)) c.update({"userprof": form}) return render_to_response('profile.html', c) c = {} c.update(csrf(request)) email = request.session.get('email', None) name = request.session.get('name', None) userprof = RegisteredUsers.objects.get(email=email) # location = userprof.location #userprof = userprof[0] #return HttpResponse(str(vars(userprof))) c.update({"oldemail": email, "user": name}) c.update({"userprof": userprof}) # c.update({"location":location}) return render_to_response('profile.html', c) # return render_to_response('profile.html',c) else: return HttpResponseRedirect("/")
def profile(request): if(islogin(request)): if request.method == "POST": form = ProfileForm(request.POST) if form.is_valid(): user = RegisteredUsers.objects.get(email=request.session.get("email",None)) try: user.email = form.cleaned_data["prof_emailid"] user.name = form.cleaned_data["prof_name"] user.dolbd = form.cleaned_data["prof_dolbd"] user.mobile = str(form.cleaned_data["prof_mobile"]) user.city = form.cleaned_data["prof_city"] # user.location = form.cleaned_data["reg_location"] user.save() except: return HttpResponse("Error in Connection with Database , Please Try again "+str(vars(user))) c={} c.update(csrf(request)) email = request.session.get('email',None) name = request.session.get('name',None) c.update({"oldemail":email,"user":name}) c.update({"userprof":user,"updated":True}) return render_to_response('profile.html',c) else: c={} email = request.session.get('email',None) name = request.session.get('name',None) c.update({"oldemail":email,"user":name}) c.update(csrf(request)) c.update({"userprof":form}) return render_to_response('profile.html',c) c={} c.update(csrf(request)) email = request.session.get('email',None) name = request.session.get('name',None) userprof = RegisteredUsers.objects.get(email=email) # location = userprof.location #userprof = userprof[0] #return HttpResponse(str(vars(userprof))) c.update({"oldemail":email,"user":name}) c.update({"userprof":userprof}) # c.update({"location":location}) return render_to_response('profile.html',c) # return render_to_response('profile.html',c) else: return HttpResponseRedirect("/")
def get_xsrf(url): if islogin() is None: raise Exception('还未登录,请先执行auth.py') header = { 'Referer': url, 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Host': 'www.zhihu.com' } requests.headers = header r = requests.get(url) results = re.compile( r"\<input\stype=\"hidden\"\sname=\"_xsrf\"\svalue=\"(\S+)\"", re.DOTALL).findall(r.text) if len(results) < 1: return None return results[0]
def home(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): log_emailid = form.cleaned_data["log_emailid"] user = RegisteredUsers.objects.get(email=log_emailid) login(request,log_emailid,user.name) return HttpResponseRedirect("/search") # return HttpResponse("Logged In success") else: c={} c.update(csrf(request)) c.update({"form":form}) return render_to_response('index.html',c) if(islogin(request)): return HttpResponseRedirect("/search") c = {} c.update(csrf(request)) return render_to_response('index.html',c)
def home(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): log_emailid = form.cleaned_data["log_emailid"] user = RegisteredUsers.objects.get(email=log_emailid) login(request, log_emailid, user.name) return HttpResponseRedirect("/search") # return HttpResponse("Logged In success") else: c = {} c.update(csrf(request)) c.update({"form": form}) return render_to_response('index.html', c) if (islogin(request)): return HttpResponseRedirect("/search") c = {} c.update(csrf(request)) return render_to_response('index.html', c)
3. `requests` 对象可以直接使用,身份信息已经自动加载。 By Luozijun (https://github.com/LuoZijun), 09/09 2015 """ requests = requests.Session() requests.cookies = cookielib.LWPCookieJar('cookies') try: requests.cookies.load(ignore_discard=True) except: Logging.error(u"你还没有登录知乎哦 ...") Logging.info(u"执行 `python auth.py` 即可以完成登录。") raise Exception("无权限(403)") if islogin() != True: Logging.error(u"你的身份信息已经失效,请重新生成身份信息( `python auth.py` )。") raise Exception("无权限(403)") reload(sys) sys.setdefaultencoding('utf8') class Question: url = None soup = None def __init__(self, url, title=None): if not re.compile(r"(http|https)://www.zhihu.com/question/\d{8}").match(url): raise ValueError("\"" + url + "\"" + " : it isn't a question url.")