def posting(request): if request.user.is_authenticated(): username = request.user.username useremail = request.user.email messages.get_messages(request) if request.method == 'POST': user = AuthUser.objects.get(username=username) print(user) diary = Diary(user=user) print(user, diary) post_form = DiaryForm(request.POST, instance=diary) print(post_form) if post_form.is_valid(): post_form.save() messages.add_message(request, messages.SUCCESS, '日记发布成功') return HttpResponseRedirect('/') else: messages.add_message(request, messages.INFO, '如果需要发布日记,就需要把所有的字段都填写完!') else: post_form = DiaryForm() messages.add_message(request, messages.INFO, '如果您要张贴日记,需要把每个字段都填写完') template = get_template('posting.html') request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def posting(request): if request.user.is_authenticated(): username = request.user.username useremail = request.user.email messages.get_messages(request) if request.method == 'POST': user = User.objects.get(username=username) diary = models.Diary(user=user) post_form = forms.DiaryForm(request.POST, instance=diary) if post_form.is_valid(): messages.add_message(request, messages.INFO, "日记已保存") post_form.save() return HttpResponseRedirect('/') else: messages.add_message(request, messages.INFO, '要张贴日记,每一个字段都要填...') else: post_form = forms.DiaryForm() messages.add_message(request, messages.INFO, '要张贴日记,每一个字段都要填...') template = get_template('posting.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def aboutMe(request): """It shows the about me page.""" template = loader.get_template('games/about.html') context = RequestContext(request) context.push({}) return HttpResponse(template.render(context))
def updatepollitem(request, pollid=None): path = request.path poll = Poll.objects.get(id=pollid) pollitems = PollItem.objects.filter(poll=poll) try: if request.method == 'POST': pollitem = PollItem(poll=poll) form = PollitemForm(request.POST, instance=pollitem) if form.is_valid(): messages.add_message(request, messages.SUCCESS, '添加选项成功~') form.save() return redirect(path) else: form = PollitemForm() messages.add_message(request, messages.INFO, '上方填入选项信息') except: form = PollitemForm() messages.add_message(request, messages.WARNING, '没有找到该话题') return redirect('/addpoll') template = get_template('updatepollitem.html') request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def _render_template(self, string, context=None): ctx = RequestContext(self.request) if context: ctx.push(context) return Template(string).render(ctx)
def login(request): # next = request.GET.get('next') if request.method == 'POST': login_form = Login_form(request.POST) if login_form.is_valid(): user_name = request.POST['username'].strip() user_password = request.POST['password'] user = authenticate(username=user_name, password=user_password) if user is not None: if user.is_active: auth.login(request, user) messages.add_message(request, messages.SUCCESS, '登陆成功') return redirect('/') else: messages.add_message(request, messages.WARNING, '账号未启用') else: messages.add_message(request, messages.WARNING, '登录失败') else: messages.add_message(request, messages.INFO, '请检查您的字段') else: login_form = Login_form() template = get_template('login.html') request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def render_oembed(self, oembed_resource, original_url, template_dir=None, context=None): """ Render the oembed resource and return as a string. Template directory will always fall back to 'oembed/[type].html', but a custom template dir can be passed in using the kwargs. Templates are given two context variables: - response: an OEmbedResource - original_url: the url that was passed to the consumer """ if not context.get("request", False): provided_context = context or Context() context = RequestContext(mock_request()) context.update(provided_context) # templates are named for the resources they display, i.e. video.html template_name = "%s.html" % oembed_resource.type # set up template finder to fall back to the link template templates = [os.path.join("oembed", template_name), "oembed/link.html"] # if there's a custom template dir, look there first if template_dir: templates.insert(0, os.path.join("oembed", template_dir, template_name)) template = select_template(templates) context.push() context["response"] = oembed_resource context["original_url"] = original_url rendered = template.render(context) context.pop() return rendered.strip() # rendering template may add whitespace
def contact(request): if request.method == 'POST': form = forms.ContactForm(request.POST) if form.is_valid(): message = "感谢您的来信,我们会尽速处理您的宝贵意见。" user_name = form.cleaned_data['user_name'] user_city = form.cleaned_data['user_city'] user_school = form.cleaned_data['user_school'] user_email = form.cleaned_data['user_email'] user_message = form.cleaned_data['user_message'] mail_body = u''' 网友姓名:{} 居住城市:{} 是否在学:{} 反应意见:如下 {}'''.format(user_name, user_city, user_school, user_message) email = EmailMessage('来自【不吐不快】网站的网友意见', mail_body, user_email, ['*****@*****.**']) email.send() else: message = "请检查您输入的信息是否正确!" else: form = forms.ContactForm() template = get_template('contact.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def news_add(request): if request.method == 'POST': ''' 每创建一条记录时, 字段都要填写完整, 这里由于用户模块还没完善, 所以写死了user_id=1, 并把此实例传给表单保存 ''' user = Users.objects.get(user_id=1) news = News(user=user) # 这里有上传文件的功能,所以可用request.FILES代替request.POST form = NewsAddModelForm(request.POST or None, request.FILES or None, instance=news) if form.is_valid(): form.save() print('success') messages.add_message(request, messages.SUCCESS, '文章发布成功,等待管理员审核!') return redirect('/') else: messages.add_message(request, messages.WARNING, '检查您输入的信息是否正确!') else: form = NewsAddModelForm() messages.add_message(request, messages.WARNING, '如果要发布信息,那么每一个字段都要填写...') template = get_template('news_add.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def review_add(request, news_id): if request.method == 'POST': user = Users.objects.get(user_id=1) news = News.objects.get(news_id=news_id) ''' 这里使用request对象来获取IP地址, 考虑到以后网站服务器会使用ngix等代理http, 或者是该网站做了负载均衡, 导致使用remote_addr抓取到的是1270.0.1,这时使用HTTP_X_FORWARDED_FOR才获得是用户的真实IP。 ''' if 'HTTP_X_FORWARDED_FOR' in request.META: ip = request.META['HTTP_X_FORWARDED_FOR'] else: ip = request.META['REMOTE_ADDR'] review = Review(user=user, news=news, ip=ip) form = ReviewModelForm(request.POST, instance=review) if form.is_valid(): form.save() print('success') messages.add_message(request, messages.SUCCESS, '评论发布成功,等待管理员审核!') return redirect('/news_detail/news_id=' + news_id) else: messages.add_message(request, messages.WARNING, '检查您输入的信息是否正确!') else: form = ReviewModelForm() template = get_template('news_detail.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(context=locals(), request=request) return HttpResponse(html)
def article_list(request, id): template = get_template('articles.html') # 第一条热文不进行排序,一般是特大政治新闻 rw = rewen.objects.first() rewen_list = rewen.objects.all().order_by('-comment')[1:7] ''' 由于从前端URL中获取过来的参数是str类型的, 而每一个表对应的模型是django.db.models.base.ModelBase类型的, 所有要转换成字符串,截取之后进行比较 id_1708, id_519, id_481, id_583, id_15 这里只要截取最后两位数字比较就行,如有重复,截取三位 ''' for articles_id in [id_1708, id_519, id_481, id_583, id_15]: # print(type(articles_id)) # print(str(articles_id)[-4:-2]) if str(articles_id)[-4:-2] == id[-2:]: article_list = articles_id.objects.all().order_by( '-pub_time')[4:60] lunbo_list = articles_id.objects.all().order_by('-pub_time')[:4] paginator = Paginator(article_list, 6) # 参数1:所有的数据,参数2:每页的记录数 try: # GET请求方式,get()获取指定Key值所对应的value值 # 获取index的值,如果没有,则设置使用默认值1 num = request.GET.get('index', '1') # 获取第几页 number = paginator.page(num) except PageNotAnInteger: # 如果输入的页码数不是整数,那么显示第一页数据 number = paginator.page(1) except EmptyPage: number = paginator.page(paginator.num_pages) request_context = RequestContext(request) request_context.push(locals()) html = template.render(context=locals(), request=request) return HttpResponse(html)
def stopq(request): u = who_auth(request) if u != 'prof': return HttpResponse('Incorrect login!') sys = get_sys_state() if sys.mode == 'INACTIVE': return redirect(reverse('index')) sys.mode = 'INACTIVE' sys.save() # choose three random students that have answered student_list = StudentInfo.objects.exclude(curr_status='ABSENT').all() s1 = None s2 = None s3 = None if len(student_list) > 3: #todo: remove this loop s_list = [] for s in student_list: s_list.append(s) s1, s2, s3 = random.sample(s_list, 3) else: if len(student_list) > 2: s3 = student_list[2] if len(student_list) > 1: s2 = student_list[1] if len(student_list) > 0: s1 = student_list[0] context = RequestContext(request) context.push({'s1': s1, 's2': s2, 's3': s3}) logq.info('Quiz for Question ' + str(sys.activeq1) + str(sys.activeq2) + str(sys.activeq3) + str(sys.activeq4) + ' is stopped.') return render(request, 'studenthome/results.html', context.flatten())
def playlist(request, playlist_id): playlist = get_object_or_404(Playlist, pk=playlist_id) tracks = PlaylistEntry.objects.filter(playlist_id=playlist.pk).order_by("pk") context = RequestContext(request, { 'playlist': playlist, 'tracks': tracks, }) if request.method == 'GET': if request.GET.get('format') == 'text': if request.GET.get('album') == 'true': context.push({'printalbum': True}) response = render(request, 'playlist/textview.html', context) response['Content-Type'] = 'text/plain; charset=utf-8' return response elif request.GET.get('format') == 'csv': response = HttpResponse(content_type='text/csv') if playlist.show is None: response[ 'Content-Disposition'] = 'attachment; filename="' + playlist.showname + '-' + playlist.date.isoformat() + '.csv"' else: response[ 'Content-Disposition'] = 'attachment; filename="' + playlist.show.name + '-' + playlist.date.isoformat() + '.csv"' out = csv.writer(response) out.writerow(['artist', 'track', 'album', 'local', 'australian', 'female', 'new release']) for track in playlist.tracks.all(): out.writerow([track.artist, track.title, track.album, track.local, track.australian, track.female, track.newRelease]) return response
def contact(request): if request.method == 'POST': form = forms.ContactForm(request.POST) if form.is_valid(): root_eamil = '*****@*****.**' message = '感谢您的来信,我们会尽快处理您的宝贵意见' user_name = form.cleaned_data['user_name'] user_city = form.cleaned_data['user_city'] user_school = form.cleaned_data['user_school'] user_email = form.cleaned_data['user_email'] user_message = form.cleaned_data['user_message'] mail_body = u''' 匿名邮箱:{} 网友姓名:{} 居住城市:{} 是否在学:{} 反应意见如下:{} '''.format(user_email,user_name,user_city,user_school,user_message) send_mail( '来自【spider有话要说】网站的网友意见', mail_body, root_eamil, [root_eamil], fail_silently=False ) else: message = '请检查您输入的信息是否正确' else: form = forms.ContactForm() template = get_template("contact.html") request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def archive_campaign(request): if request.method == 'DELETE': try: data = json.loads(request.body) campaign_id = data['campaign_id'] except TypeError: return HttpResponse("Invalid campaign data.", status=400) else: campaign_id = request.GET.get('campaign_id') user = request.user if campaign_id: campaign = user.profile.get_campaigns(id=campaign_id) if not campaign: return HttpResponse("Invalid campaign id", status=400) else: campaign = campaign[0] campaign.archived = True campaign.save() context = RequestContext(request) data = { 'message_status': 'warning', 'message': 'Campania a fost arhivata cu succes.' } context.push(data) context.push(request.user.profile.campaign_count()) return render_to_response('status_message.html', context=context) else: HttpResponse("Unspecified campaign", status=400)
def index(request): manager = WeekPlanManager() day_frame_template = loader.get_template('main/day_frame_template.html') request_context = RequestContext(request) day_frame_templates = [day_frame_template.render(Context({'day_plan': x})) for x in manager.week_plans] request_context.push({'manager': manager, 'day_frame_templates': day_frame_templates}) return render(request, 'main/main.html', request_context)
def delete(req): req_ctx = RequestContext(req) if req.method == "POST": form = BookForm(req.POST) if form.is_valid(): clean_data = form.cleaned_data kwargs = getKwargs(clean_data) try: del_books = Book.objects.filter(**kwargs) req_ctx.push({'del_books': del_books}) # Delete selected books del_books.delete() except: pass finally: # ToDo: response diffeently according to the post data return HttpResponseRedirect(reverse('delete_result'), {'req_ctx': req_ctx}) else: form = BookForm(None) req_ctx.push({'form': form}) return render(req, 'books/delete.html', {'req_ctx': req_ctx})
def add(req): req_ctx = RequestContext(req) if req.method == "POST": form = BookForm(req.POST) if form.is_valid(): book_name = form.cleaned_data['name'] book_author = form.cleaned_data['author'] book_price = (int)(form.cleaned_data['price']) book_description = form.cleaned_data['description'] book = Book(name=book_name, author=book_author, price=book_price, description=book_description) Book.objects.get_or_create(name=book.name, author=book.author, price=book.price, description=book.description) return HttpResponseRedirect(reverse('add_result')) else: form = BookForm(None) req_ctx.push({'form': form}) return render(req, 'books/add.html', {'req_ctx': req_ctx})
def ninja(request): context = RequestContext(request) if request.method == 'POST': form = WlanForm(utils.get_fact('wlan', 'ninja', 'ssid'), request.POST) if form.is_valid(): password = form.cleaned_data['password2'] ssid = form.cleaned_data['ssid'] jobs.queue_job(wlanjobs.reconfigure_tor, (ssid, password)) context.push({'message': True, 'ninja_ssid':ssid}) else: logger.error("tor form validation failed for %s" % request.path) else: form = WlanForm(utils.get_fact('wlan','ninja','ssid')) model_info = ModelInfo() pi3 = model_info.runs_on_pi3() context.push({ 'form': form, 'messagestore': jobs.get_messages(), 'pi3': pi3}) return render_to_response("ninja.html", context)
def login(request): if request.user.is_authenticated(): return redirect('/') if request.method == 'POST': login_form = forms.LoginForm(request.POST) if login_form.is_valid(): login_name=request.POST['username'].strip() login_password=request.POST['password'] user = authenticate(username=login_name, password=login_password) if user is not None: if user.is_active: auth.login(request, user) messages.add_message(request, messages.SUCCESS, '成功登录了') return redirect('/') else: messages.add_message(request, messages.WARNING, '账号尚未启用') else: messages.add_message(request, messages.WARNING, '登录失败') else: messages.add_message(request, messages.INFO,'请检查输入的字段内容') else: login_form = forms.LoginForm() template = get_template('login.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def create_daily_distance(request): if request.method == 'POST': form = DailyDistanceForm(request.POST) new_daily_distance = form.save(commit=False) new_daily_distance.manually_entered = True new_daily_distance.user = request.user new_daily_distance.save() msg = ("You have added daily information for {}.".format( new_daily_distance.day)) messages.info(request, msg) return HttpResponseRedirect(reverse('quest_maker_app:homepage')) else: day = request.GET.get('day') if day: day = datetime.datetime.strptime(day, "%Y-%m-%d").date() default_data = {"day": day} form = DailyDistanceFormDefaultDay(default_data) else: form = DailyDistanceForm() variables = RequestContext(request, {'form': form}) variables.push({'day': day}) return render_to_response('quest_maker_app/edit_daily_distance.html', variables)
def index(request, cat_id=0): all_categories = models.Category.objects.all() all_products = None if cat_id > 0: try: category = models.Category.objects.get(id=cat_id) except: category = None if category is not None: all_products = models.Product.objects.filter(category=category) if category is None: cate = 0 else: cate = category.id if all_products is None: all_products = models.Product.objects.all() paginator = Paginator(all_products, 4) p = request.GET.get('p') try: products = paginator.page(p) except PageNotAnInteger: products = paginator.page(1) except EmptyPage: products = paginator.page(paginator.num_pages) cart = Cart(request) template = get_template('index.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def contact(request): if request.user.is_authenticated(): username = request.user.username if request.method == 'POST': form = forms.ContactForm(request.POST) if form.is_valid(): message = '感谢您的来信' user_name = form.cleaned_data['user_name'] user_city = form.cleaned_data['user_city'] user_email = form.cleaned_data['user_email'] user_message = form.cleaned_data['user_message'] mail_body = u''' 网友的姓名:{} 居住省份:{} 反映意见:{} '''.format(user_name, user_city, user_message) email = EmailMessage('来自[吐槽大会]网站的意见', mail_body, user_email, ['*****@*****.**']) email.send() else: message = '请检查您输入的信息是否正确' else: form = forms.ContactForm() template = get_template('contact.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def django_render_block(template, block_name, context, request=None): # Create a Django Context. if request: context_instance = RequestContext(request) context_instance.push(context) else: context_instance = Context(context) # Get the underlying django.template.base.Template object. template = template.template # Bind the template to the context. with context_instance.bind_template(template): # Before trying to render the template, we need to traverse the tree of # parent templates and find all blocks in them. parent_template = _build_block_context(template, context_instance) try: return _render_template_block(template, block_name, context_instance) except BlockNotFound: # The block wasn't found in the current template. # If there's no parent template (i.e. no ExtendsNode), re-raise. if not parent_template: raise # Check the parent template for this block. return _render_template_block( parent_template, block_name, context_instance)
def temp_myfilter(request): list = [1, 6, 3, 9, 8, 2] temp = loader.get_template('booktest/temp_myfilter.html') context = RequestContext(request, {'list': list}) context.push(locals()) render_html = temp.render(context=locals(), request=request) return HttpResponse(render_html)
def posting(request): if request.user.is_authenticated(): username = request.user.username useremail = request.user.email messages.get_messages(request) if request.method == 'POST': user = User.objects.get(username=username) diary = models.Diary(user=user) post_form = forms.DiaryForm(request.POST, instance=diary) if post_form.is_valid(): messages.add_message(request, messages.INFO, "日記已儲存") post_form.save() return HttpResponseRedirect('/') else: messages.add_message(request, messages.INFO, '要張貼日記,每一個欄位都要填...') else: post_form = forms.DiaryForm() messages.add_message(request, messages.INFO, '要張貼日記,每一個欄位都要填...') template = get_template('posting.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def dnsmanager(request): messages.get_messages(request) subdomains = models.Subdomain.objects.filter(user=request.user) if len(subdomains) > 0: records_in_dnsimple = subdomain_in_dnsimple(subdomains[0].name) main_subdomain = subdomains[0].name if request.method == 'POST': user = User.objects.get(username=request.user.username) new_subdomain = models.Subdomain(user=user) form = forms.SubdomainForm(request.POST, instance=new_subdomain) if form.is_valid(): cleaned_info = form.cleaned_data if models.Subdomain.objects.filter( name=cleaned_info['name']).exists(): messages.add_message(request, messages.WARNING, "该网址已被申请了!") return redirect('/dnsmanager') else: form.save() messages.add_message(request, messages.SUCCESS, "网址申请成功!") return redirect('/dnsmanager') else: form = forms.SubdomainForm() template = get_template('dnsmanager.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def userinfo(request): if request.user.is_authenticated(): username = request.user.username user = AutoUser.objects.get(username=username) try: profile = Profile.objects.get(user=user) except: profile = Profile(user=user) if request.method == 'POST': profile_form = ProfileFrom(request.POST, instance=profile) if profile_form.is_valid(): profile_form.save() messages.add_message(request, messages.INFO, '个人资料存储成功') return HttpResponseRedirect('/userinfo') else: messages.add_message(request, messages.INFO, '要修改资料,需要把每个字段都填写完') else: profile_form = ProfileFrom() template = get_template('userinfo.html') request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): message = '感谢您的来信.' user_name = form.cleaned_data['user_name'] user_city = form.cleaned_data['user_city'] user_school = form.cleaned_data['user_school'] user_email = form.cleaned_data['user_email'] user_message = form.cleaned_data['user_message'] email_body = u''' 网友姓名:{} 居住城市:{} 是否在校:{} 反应如下:{} '''.format(user_name, user_city, user_school, user_message) email = EmailMessage('来自【不吐不快】的网友邮件', email_body, user_email, ['*****@*****.**']) else: message = '请正确填写内容' else: form = ContactForm() template = get_template('contact.html') forms = ContactForm() request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def hangwoman(request): """It is the main method that starts the game.""" template = loader.get_template('games/hangwoman.html') context = RequestContext(request) context.push({}) return HttpResponse(template.render(context))
def index(request, cat_id=0): allproducts = None allcategories = models.Category.objects.all() if cat_id > 0: try: category = models.Category.objects.get(id=cat_id) except: category = None if category is not None: allproducts = models.Product.objects.filter(category=category) if allproducts is None: allproducts = models.Product.objects.all() paginator = Paginator(allproducts, 4) p = request.GET.get('p') try: products = paginator.page(p) except PageNotAnInteger: products = paginator.page(1) except EmptyPage: products = paginator.page(paginator.num_pages) # allpolls = models.Poll.objects.all() cart = Cart(request) template = get_template('index.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def login(request): if request.user.is_authenticated(): return redirect('/') if request.method == 'POST': login_form = forms.LoginForm(request.POST) if login_form.is_valid(): login_name=request.POST['username'].strip() login_password=request.POST['password'] user = authenticate(username=login_name, password=login_password) if user is not None: if user.is_active: auth.login(request, user) messages.add_message(request, messages.SUCCESS, '成功登入了') return redirect('/') else: messages.add_message(request, messages.WARNING, '帳號尚未啟用') else: messages.add_message(request, messages.WARNING, '登入失敗') else: messages.add_message(request, messages.INFO,'請檢查輸入的欄位內容') else: login_form = forms.LoginForm() template = get_template('login.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def userinfo(request): if request.user.is_authenticated(): username = request.user.username user = User.objects.get(username=username) try: profile = models.Profile.objects.get(user=user) except: profile = models.Profile(user=user) if request.method == 'POST': profile_form = forms.ProfileForm(request.POST, instance=profile) if profile_form.is_valid(): messages.add_message(request, messages.INFO, "个人资料已保存") profile_form.save() return HttpResponseRedirect('/userinfo') else: messages.add_message(request, messages.INFO, '要修改个人资料,每一个字段都要填...') else: profile_form = forms.ProfileForm() template = get_template('userinfo.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def render_page(request, template, module_name): """ Internal interface to the dev page view. """ context = {} log.debug("template name: " + template.name) log.debug("module_name: " + module_name) datafile_name = template.origin.name # strip off the html and try data.py if datafile_name.endswith('dt'): datafile_name = datafile_name[0:len(datafile_name) - 2] datafile_name += 'data.py' log.debug("datafilename: " + datafile_name) # else: # datafile_name += '.data.py' # try to load a data file if it is there in order to get the context # all data files should support get_context() or a context property try: log.debug("attempting to load data_file...") spec = importlib.util.spec_from_file_location(module_name, datafile_name) data = importlib.util.module_from_spec(spec) spec.loader.exec_module(data) # datafile = imp.load_source(module_name, datafile_name) # note changing datafile below to data except FileNotFoundError: data = None except Exception as ex: # logging.error(traceback.format_exc()) data = None if settings.DEBUG: raise ex if data: try: initmethod = getattr(data, 'get_context') except AttributeError: initmethod = None if initmethod: # we may want to return something like a redirect so if is response then return it; else use for data! context = initmethod(request) if isinstance(context, HttpResponse): return context else: try: context = getattr(data, 'context') except AttributeError: context = {} # print("context string: " + str(context)) template_context = RequestContext(request) if context: template_context.push(context) response = HttpResponse(template.render(template_context)) # add a canonical header if we are doing some fancy string replacement so analytics work properly with SEO if request.path != "/" + module_name and request.scheme and request.get_host( ): response[ 'Link'] = f'< {request.scheme}://{request.get_host()}/{module_name} >; rel="canonical"' return response
def vpn_generate(request): context = RequestContext(request) form = VpnProfileForm(request.POST) if form.is_valid(): profilename = form.cleaned_data.get('profilename') dyndomain = form.cleaned_data.get('dyndomain') logger.info("generating profile %s" % profilename) profile = VpnProfile(profilename=profilename, dyndomain=dyndomain) profile.config = "# upri.box OVPN config for %s\nfoo bar baz bar OpenVPN config goes here" % profilename profile.save() if not (settings.IGNORE_MISSING_UPRICONFIG and not exists('/usr/local/bin/upri-config.py')): jobs.queue_job(vpnjobs.generate_profile, (str(profile.id), )) context.push({'message': True}) else: context.push({'message': False}) context.push({'form': VpnProfileForm()}) else: context.push({'form': VpnProfileForm(request.POST)}) context.push({ 'messagestore': jobs.get_messages(), 'profiles': VpnProfile.objects.all() }) return render_to_response("vpn.html", context)
def vpn_generate(request): context = RequestContext(request) form = VpnProfileForm(request.POST) if form.is_valid(): profilename = form.cleaned_data.get('profilename') dyndomain = form.cleaned_data.get('dyndomain') logger.info("generating profile %s" % profilename ) profile = VpnProfile(profilename=profilename, dyndomain=dyndomain) profile.config = "# upri.box OVPN config for %s\nfoo bar baz bar OpenVPN config goes here" % profilename profile.save() if not (settings.IGNORE_MISSING_UPRICONFIG and not exists('/usr/local/bin/upri-config.py')): jobs.queue_job(vpnjobs.generate_profile, (str(profile.id),)) context.push({'message': True}) else: context.push({'message': False}) context.push({'form': VpnProfileForm()}) else: context.push({'form': VpnProfileForm(request.POST)}) context.push({ 'messagestore': jobs.get_messages(), 'profiles': VpnProfile.objects.all()}) return render_to_response("vpn.html", context)
def upload(request): if(request.method == 'POST'): try: # File info file_name = request.FILES['files'] ext = file_name.content_type # Extension file # If in whitelist if(ext in EXT_FILES): file_form = UploadFileForm(request.POST, request.FILES) if file_form.is_valid(): # Save file to disk image = file_form.save(commit=False) # image = User_Image() image.user_id = request.session.get('user_id') image.image_path = "UploadImages/" + file_name.name # Save info file to db image.save() else: request_context = RequestContext(request) request_context.push({'errorMessage': 'Upload Invalid.'}) return render(request, 'index.html', request_context) else: print "failed" except Exception,e: request_context = RequestContext(request) request_context.push({'errorMessage': 'Upload Invalid.'}) return render(request, 'index.html', request_context)
def addpoll(request): if request.user.is_authenticated(): username = request.user.username useremail = request.user.email user = User.objects.get(username=username) polls = Poll.objects.filter(user=user).order_by('-created_at') if request.method == 'POST': try: poll = Poll(user=user) forms = PollForm(request.POST, instance=poll) if forms.is_valid(): forms.save() messages.add_message(request, messages.SUCCESS, '话题添加成功!') return redirect('.') else: messages.add_message(request, messages.WARNING, '添加失败,每个字段都是需要填写的') except: forms = PollForm() messages.add_message(request, messages.INFO, '发布话题~') else: forms = PollForm() template = get_template('addpoll.html') request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def login(request): if(request.method == 'POST'): username = request.POST.get('user_name') password = request.POST.get('password') try: # Secure password m = hashlib.md5() m.update(password) password = m.hexdigest() # Get user by info POST request # If has record then redirect to index with session save result = User.objects.get(user_name=username, password=password) request.session['username'] = result.user_name request.session['user_id'] = result.id url = reverse('index', args=()) return redirect('index') except User.DoesNotExist: # Fail login form = UserForm() request_context = RequestContext(request) request_context.push({'form': form}) request_context.push({'errorMessage': 'Login Failed.'}) return render(request, 'login.html', request_context) else: form = UserForm() return render(request, 'login.html', {'form': form})
def contact(request): if request.method == 'POST': form = forms.ContactForm(request.POST) if form.is_valid(): message = '感谢您的来信' user_name = form.cleaned_data['user_name'] user_city = form.cleaned_data['user_city'] user_school = form.cleaned_data['user_school'] user_email = form.cleaned_data['user_email'] user_message = form.cleaned_data['user_message'] letter = models.Letter.objects.create(username=user_name, city=user_city, school=user_school, email=user_email, content=user_message) letter.save() else: message = '请检查您输入的信息是否正确' else: form = forms.ContactForm() template = get_template('contact.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def index(request, cat_id=None): all_product = None all_cateories = Category.objects.all() if cat_id is not None: try: category = Category.objects.get(id=int(cat_id)) except: category = None if category is not None: all_product = Products.objects.filter(category=category) if all_product is None: all_product = Products.objects.all().order_by('-sku') pagiator = Paginator(all_product, 4) p = request.GET.get('page') try: products = pagiator.page(p) except PageNotAnInteger: products = pagiator.page(1) except EmptyPage: products = pagiator.page(pagiator.num_pages) temprate = get_template('index.html') request_content = RequestContext(request) request_content.push(locals()) html = temprate.render(request_content) return HttpResponse(html)
def blacklist_words(request): form = BlackListWordsForm(request.user) try: fb_user = FacebookUser.objects.get(user=request.user) except FacebookUser.DoesNotExist: # TODO Proper 404 HttpResponse("Not Found") if request.method == 'GET': initial = BlackListedWords.objects.filter(user=fb_user) initial_words = [] if initial: initial_words = [i.word for i in initial] request_context = RequestContext(request) request_context.push({ 'form': form, 'user': request.user, 'initial_words': initial_words }) return render_to_response('blacklist_words.html', request_context) else: form = BlackListWordsForm(request.user, data=request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('blacklist_words')) else: return HttpResponse(form.errors)
def posting(request): if request.user.is_authenticated(): username = request.user.username useremail = request.user.email messages.get_messages(request) if request.method == 'POST': user = AutoUser.objects.get(username=username) diary = Diary(user=user) post_form = DiaryForm(request.POST, instance=diary) if post_form.is_valid(): messages.add_message(request, messages.INFO, '日记已添加') post_form.save() return HttpResponseRedirect('/') else: messages.add_message(request, messages.WARNING, '如果你要添加日记,需要每一个字段都正确填写') else: post_form = DiaryForm() messages.add_message(request, messages.WARNING, '如果你要添加日记,需要每一个字段都正确填写') template = get_template('posting.html') request_content = RequestContext(request) request_content.push(locals()) html = template.render(request_content) return HttpResponse(html)
def dnsmanager(request): messages.get_messages(request) subdomains = models.Subdomain.objects.filter(user=request.user) if len(subdomains)>0: records_in_dnsimple = subdomain_in_dnsimple(subdomains[0].name) main_subdomain = subdomains[0].name if request.method == 'POST': user = User.objects.get(username=request.user.username) new_subdomain = models.Subdomain(user=user) form = forms.SubdomainForm(request.POST, instance=new_subdomain) if form.is_valid(): cleaned_info = form.cleaned_data if models.Subdomain.objects.filter(name=cleaned_info['name']).exists(): messages.add_message(request, messages.WARNING, "该网址已被申请了!") return redirect('/dnsmanager') else: form.save() messages.add_message(request, messages.SUCCESS, "网址申请成功!") return redirect('/dnsmanager') else: form = forms.SubdomainForm() template = get_template('dnsmanager.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def contact(request): if request.method == 'POST': form = forms.ContactForm(request.POST) if form.is_valid(): message = "感謝您的來信,我們會儘速處理您的寶貴意見。" user_name = form.cleaned_data['user_name'] user_city = form.cleaned_data['user_city'] user_school = form.cleaned_data['user_school'] user_email = form.cleaned_data['user_email'] user_message = form.cleaned_data['user_message'] mail_body = u''' 網友姓名:{} 居住城市:{} 是否在學:{} 反應意見:如下 {}'''.format(user_name, user_city, user_school, user_message) email = EmailMessage('來自【不吐不快】網站的網友意見', mail_body, user_email, ['*****@*****.**']) email.send() else: message = "請檢查您輸入的資訊是否正確!" else: form = forms.ContactForm() template = get_template('contact.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def login(request): if request.method == 'POST': login_form = forms.LoginForm(request.POST) if login_form.is_valid(): login_name = request.POST['username'].strip() login_password = request.POST['password'] user = authenticate(username=login_name, password=login_password) if user is not None: if user.is_active: auth.login(request, user) message = '成功登录' return redirect('/') else: message = '账户尚未启用' else: message = '请检查账户与密码是否正确' else: message = '请检查输入的字段' else: login_form = forms.LoginForm() template = get_template('login.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def setup_request(self, new_text, request_type='POST'): request = HttpRequest() request.method = request_type if request_type == 'POST': request.POST['item_text'] = new_text rc = RequestContext(request) rc.push({'new_item_text': new_text}) return (request, rc)
def vpn_config(request): context = RequestContext(request) context.push({ 'messagestore': jobs.get_messages(), 'profiles': VpnProfile.objects.all(), 'form': VpnProfileForm()}) return render_to_response("vpn.html", context)
def cart(request): all_categories = models.Category.objects.all() cart = Cart(request) template = get_template('cart.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def process_request(self, request): if request.user.is_authenticated(): request_context = RequestContext(request) request_context.push({"user": request.user}) return None for url in self.exceptions: if url.match(request.path): return None return HttpResponseRedirect('/auth/login/')
def index(request, pid=None, del_pass=None): messages.get_messages(request) template = get_template('index.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def deleteAllTasks(request): taskObject = Task.objects.all() taskObject.delete() latestTaskList = Task.objects.all() template = loader.get_template('todoList/index.html') context = RequestContext(request) context.push({ 'latestTaskList': latestTaskList, }) return HttpResponse(template.render(context))
def my_orders(request): all_categories = models.Category.objects.all() orders = models.Order.objects.filter(user=request.user) template = get_template('myorders.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def catalog(request): genres = Film.objects.order_by('genre').values('genre').distinct() context = RequestContext(request) film_list = Film.objects.all() f = FilmFilter(request.GET, queryset=Film.objects.all()) # print(f.__dict__) context.push( {'filter': f, 'list': film_list, 'genre_list': genres} ) return render_to_response('movies/catalog.html', context)
def resolve_context(self, context): """Convert context data into a full RequestContext object (assuming it isn't already a Context object). """ if isinstance(context, Context): return context context_instance = RequestContext(self._request) if context: context_instance.push(context) return context_instance
def vpn_get(request, slug): try: profile = VpnProfile.objects.get(slug=slug) #render profile context = RequestContext(request) context.push({'profile': profile}) return render_to_response("vpn_profile.html", context) except VpnProfile.DoesNotExist: raise Http404()
def deleteAllTasks(request): """ Deletes all the tasks.""" ndb.delete_multi(Task.query().fetch(keys_only=True)) latestTaskList = Task.query() template = loader.get_template('todoList/index.html') context = RequestContext(request) context.push({ 'latestTaskList': latestTaskList, }) return HttpResponse(template.render(context))
def index(request, pid=None, del_pass=None): if request.user.is_authenticated(): username = request.user.username useremail = request.user.email messages.get_messages(request) template = get_template('index.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)
def index(request): messages.get_messages(request) pics = random.sample(range(1,87),6) template = get_template('index.html') request_context = RequestContext(request) request_context.push(locals()) html = template.render(request_context) return HttpResponse(html)