def folders(category, page): info = folder_dict.get(category) if not info: ##路径不存在,拒绝访问 return redirect('/') else: folders = info.get('folders') length = len(folders) begin, end, pages = Page.get_index(total=length, per=30, page=page) inner_folders = folders[begin:end] page_list = Page.get_list(page=page, pages=pages, echo=5) last_page = max(1, page - 1) next_page = min(pages, page + 1) category_echo = category_dict.get(category) return render_template('mm/folder.html',category=category,page_list=page_list,category_echo=category_echo,\ folders=inner_folders,current_page=page,last_page=last_page,next_page=next_page,pages=pages)
def index(request): # 获取当前页码 try: page = int(request.GET.get('page', 1)) except Exception as e: page = 1 # 获取数据的总数 book_count = Books.objects.count() # 书的总数 除以 每页显示的数 page_count, m = divmod(book_count, 10) # divmod 返回两个元素的元组, 第一个参数是商 第二个参数是余数 if m: # 当余数不为空时 总页数加1 page_count += 1 # 实例化Page产生分页对象 page = Page(page, page_count, '/app01/index/') print(page.start_pos, page.end_pos) # 根据开始和结束位置 获取数据 books = Books.objects.values('id', 'books_name', 'stock', 'sales_num')[page.start_pos:page.end_pos] # 获取分页的html代码 page_html = page.get_page_show() return render(request, 'books.html', { "books": books, 'page_html': page_html })
def tag_tail(tag, page): paths = Tag.get_path_by_tag(tag) length = len(paths) begin, end, pages = Page.get_index(total=length, per=30, page=page) infos = paths[begin:end] lines = [] for info in infos: l = info.split('/') book = l[-1].split('.')[0] category = l[-2] finish = l[-3] lines.append((finish, category, book)) page_list = Page.get_list(page=page, echo=5, pages=pages) last_page = max(1, page - 1) next_page = min(pages, page + 1) return render_template('/tags/tag.html', lines=lines, page_list=page_list, last_page=last_page, next_page=next_page, tag=tag, current_page=page, pages=pages)
def get(self, request): recv_data = copy.copy(request.GET) current_page_number = request.GET.get('page') search_field = request.GET.get('search_field') if search_field == None: search_field = 'customer__name__contains' keyword = request.GET.get("keyword") all_enrollment = None if keyword: q = Q() q.children.append([search_field, keyword]) all_enrollment = models.Enrollment.objects.filter(q) else: all_enrollment = models.Enrollment.objects.all() all_enrollment = all_enrollment.filter(delete_status=False) total_count = all_enrollment.count() per_page_count = settings.PER_PAGE_COUNT page_number_show = settings.PAGE_NUMBER_SHOW page_obj = Page(current_page_number, total_count, page_number_show, per_page_count, recv_data) all_enrollment = all_enrollment[page_obj.start_data_number:page_obj. end_data_number] page_html = page_obj.page_html_func() return render( request, 'enrollment_record/show_enrollment_record.html', { "all_enrollment": all_enrollment, "page_html": page_html, "keyword": keyword, 'search_field': search_field })
def result(page): # data=session.get('search') data = temp result = data[0] search_keyword = data[1] total = len(result) begin, end, pages = Page.get_index(page=page, total=total, per=20) page_result = result[begin:end] page_list = Page.get_list(pages=pages, page=page, echo=5) jinja_list = [] for d in page_result: filepath = d.get('filepath') keyword = d.get('keyword') keyword_str = u','.join(keyword) l = filepath.split('/') book = l[-1].split('.')[0] category = l[-2] finish = l[-3] jinja_list.append([finish, category, book, keyword_str]) next_page = min(pages, page + 1) last_page = max(1, page - 1) return render_template('search/result.html',current_page=page,total=total,keyword=search_keyword,page_list=page_list,pages=pages,last_page=last_page,\ next_page=next_page,jinja_list=jinja_list,)
def test_login(self, name, password, expect, tag, desc): # print("\n当前用例:{}".format(desc)) logging.info("操作元素:{}".format(desc)) Page.get_mobile().mobile(name, password) if not tag: assert expect == Page.get_user().get_username() Page.get_user().setting_btn() Page.get_title().logout() else: assert Page.get_mobile().mh.toast_message(expect) Page.get_mobile().close_login()
def get(self, request, *args, **kwargs): current_page = request.GET.get('page') # 当前页 try: current_page = int(current_page) except Exception as e: current_page = int(1) all_count = models.UserHost.objects.all().count() # 数据总条数 page_obj = Page(current_page, all_count, request.path_info) # requ request.path_info当前URL game_list = models.UserHost.objects.all()[page_obj.start:page_obj.end] page_str = page_obj.page_html() return render(request, 'games.html', { 'game_list': game_list, 'page_str': page_str })
def get(self, request): recv_data = copy.copy(request.GET) current_page_number = request.GET.get("page") #当前页码 search_field = request.GET.get('search_field') #所搜条件 if search_field == None: search_field = 'qq__contains' keyword = request.GET.get("keyword") all_customers = None message = None if keyword: q = Q() q.children.append([search_field, keyword]) all_customers = models.Customer.objects.filter(q) else: if request.path == reverse('mysite:show_customers'): all_customers = models.Customer.objects.filter( consultant__isnull=True) message = "公有" change_message = "公有客户转私有客户" else: all_customers = models.Customer.objects.filter( consultant__username=request.session.get("username")) message = "私有" change_message = "私有客户转公有客户" total_count = all_customers.count() per_page_count = settings.PER_PAGE_COUNT page_number_show = settings.PAGE_NUMBER_SHOW page_obj = Page(current_page_number, total_count, page_number_show, per_page_count, recv_data) all_customers = all_customers[page_obj.start_data_number:page_obj. end_data_number] page_html = page_obj.page_html_func() return render( request, 'customers/show_customers.html', { 'all_customers': all_customers, "page_html": page_html, "keyword": keyword, 'message': message, 'search_field': search_field })
def get(self, request): recv_data = copy.copy(request.GET) current_page_number = request.GET.get("page") # 当前页码 search_field = request.GET.get('search_field') # 所搜条件 if search_field == None: search_field = 'customer__name__contains' keyword = request.GET.get("keyword") all_records = None print(request.GET.dict()) #获取单个客户的id customer_id = request.GET.get("customer_id") if keyword: q = Q() q.children.append([search_field, keyword]) all_records = models.ConsultRecord.objects.filter(q) else: all_records = models.ConsultRecord.objects.all() all_records = all_records.filter( consultant__username=request.session.get('username'), delete_status=False) if customer_id: all_records = all_records.filter(customer_id=customer_id) total_count = all_records.count() per_page_count = settings.PER_PAGE_COUNT page_number_show = settings.PAGE_NUMBER_SHOW page_obj = Page(current_page_number, total_count, page_number_show, per_page_count, recv_data) all_records = all_records[page_obj.start_data_number:page_obj. end_data_number] page_html = page_obj.page_html_func() return render( request, 'consult_record/consult_record.html', { 'all_records': all_records, "page_html": page_html, "keyword": keyword, 'search_field': search_field })
def book(path, category, page): filenames = BOOK.book_dict.get(path).get(category) length = len(filenames) begin, end, pages = Page.get_index(page=page, total=length, per=30) current_filenames = filenames[begin:end] page_list = Page.get_list(pages=pages, page=page, echo=5) next_page = min(pages, page + 1) last_page = max(1, page - 1) books = [filename.rsplit('.', 1)[0] for filename in current_filenames] return render_template('/books/book.html',category=category,last_page=last_page,books=books,pages=pages,\ current_page=page,next_page=next_page,path=path,page_list=page_list)
def get(self, request): article_list = models.Article.objects.all() totol_num = article_list.count() page_num = request.GET.get("page", 1) # 分页实例化传参 page_obj = Page(total_num=totol_num, page_num=page_num, url_prefix='home', every_page_num=2) # 根据分页拿到的start和end切片得到所要的数据 data = article_list[page_obj.start:page_obj.end] # 调用html方法得到分页的html代码片段 page_html = page_obj.html return render(request, 'home.html', { 'article_list': data, 'page_html': page_html })
def listview(self, request): # 批量操作 if request.method == "POST": print(666) pk_list = request.POST.getlist('checkbox_pk') queryset = self.model.objects.filter(pk__in=pk_list) action_name = request.POST.get("action") try: action = getattr(self, action_name) action(queryset) except: code = 1 # 添加数据的url,给前端添加button的 add_url = self.get_add_url() # 数据库查询出当数据前表的所有数据 data_list = self.model.objects.all() # 调用get_search_condition方法获取search查询条件 search_conditions = self.get_search_condition(request) # 调用get_filter_condition方法获取filter的查询条件 filter_conditions = self.get_filter_condition(request) # 过滤,找出符合要求的数据 new_data_list = data_list.filter(search_conditions).filter(filter_conditions) # 调用视图展示类实例化来生成类对象 listview_obj = ListView(self, request, new_data_list) # 调用试图类对象生成数据体的方法生成数据 obj_list = listview_obj.create_body() # 分页组件实例化传参 page_obj = Page(total_num=len(obj_list), page_num=request.GET.get("page", 1), request=request, every_page_num=10) # 根据分页拿到的start和end切片得到所要的数据 obj_list = obj_list[page_obj.start:page_obj.end] # 调用html方法得到分页的html代码片段 page_html = page_obj.html return render(request, 'stark/list_view.html', locals())
def folder(folder, page): src_list = Voice.get_src(folder=folder) title = folder_dict.get(folder, folder) length = len(src_list) page_list = Page.get_list(pages=length, page=page, echo=5) page = max(1, page) page = min(length, page) last_page = max(1, page - 1) next_page = min(length, page + 1) src = src_list[page - 1] return render_template('music/folder.html',page=page,src_list=src_list,folder=folder,title=title,src=src,\ page_list=page_list,last_page=last_page,next_page=next_page,current_page=page,pages=length)
def blogcenter(request, username, *args): # 通过用户信息找到当前用户的对象 user_obj = models.UserInfo.objects.filter(username=username).first() # ORM操作查询当前用户对应的所有书籍 article_list = models.Article.objects.filter( user=user_obj).order_by("create_time").reverse() if args: if args[0] == "category": # 表示按照文章分类查询 article_list = article_list.filter(category__title=args[1]) elif args[0] == "tag": # 表示按照文章的标签查询 article_list = article_list.filter(tags__title=args[1]) else: # 表示按照文章的日期归档查询 try: year, month = args[1].split("-") article_list = article_list.filter( create_time__year=year).filter(create_time__month=month) except Exception as e: article_list = [] # 分页 page_num = request.GET.get("page", 1) totol_num = article_list.count() page_obj = Page(total_num=totol_num, page_num=page_num, url_prefix=f'blogcenter/{username}', every_page_num=5) print(page_obj.start) print(page_obj.end) article_list = article_list[page_obj.start:page_obj.end] page_html = page_obj.html return render(request, 'blogcenter.html', { 'username': username, 'article_list': article_list, 'page_html': page_html })
def item(category, folder, page): ##利用img base64 读取不在static下的文件 folder_dict_value = folder_dict.get(category) if folder_dict_value: root = folder_dict_value.get('root') folders = folder_dict_value.get('folders') item_key = u'%s-%s' % (category, folder) filenames = item_dict.get(item_key) if filenames: category_dict = Path.get_category() category_echo = category_dict.get(category) item_length = len(filenames) folder_length = len(folders) folder_index = folders.index(folder) last_folder_index = max(1, folder_index - 1) next_folder_index = min(folder_length - 1, folder_index + 1) last_folder = folders[last_folder_index] next_folder = folders[next_folder_index] ##上一篇以及下一篇 page = min(page, item_length) page = max(page, 1) ##page最小取值为1,最大取值为item_length filename = filenames[page - 1] extend = filename.rsplit('.', 1)[-1] img_path = u'%s/%s/%s' % (root, folder, filename) src = img_path.split(':', 1)[-1] # print img_path last_page = max(1, page - 1) next_page = min(item_length, page + 1) #上一页以及下一页 headers = request.headers agent = headers['User-Agent'] width = '70%' echo = 5 if 'linux' in agent.lower(): width = '100%' echo = 1 item_page_list = Page.get_list(page=page, pages=item_length, echo=echo) return render_template('/mm/item.html',category=category,category_echo=category_echo,folder=folder,last_folder=last_folder,\ next_folder=next_folder,last_page=last_page,next_page=next_page,src=src,\ folder_length=folder_length,item_length=item_length,width=width,page=page,\ item_page_list=item_page_list,current_page=page) ##category不存在以及item_key不存在的情况下,均重定向到首页 return redirect('/')
def login_page(selenium): selenium.get('http://39.104.14.232/ecshop/wwwroot/admin/privilege.php?act=login') yield Page(selenium, 'login_page.yaml')
# from page.bnal01_homepage import HomeTask # from page.bnal02_registerpage import RegisterTask # from page.bnal03_mobilepage import MobileTask # from page.bnal04_userpage import UserTask # from page.bnal05_titlepage import TitleTask from utils.page import Page import time time.sleep(1) # 点击关闭弹窗 # HomeTask.close_alert() Page.get_home().close_alert() time.sleep(1) # 点击我 # HomeTask.goto_sign() Page.get_home().goto_sign() time.sleep(2) # 点击已有账号去登录 # RegisterTask.close_register() Page.get_register().close_register() time.sleep(2) # 输入账号,密码,点击登录 # MobileTask.mobile("18721145092", "zhu930310") Page.get_mobile().mobile("18721145092", "zhu930310") time.sleep(2) # 获取用户名 # print(UserTask.get_username()) print(Page.get_user().get_username()) # 点击设置 # UserTask.setting_btn() Page.get_user().setting_btn()
def setup(self): Page.get_home().goto_sign() Page.get_register().close_register()
def setup_class(self): Page.get_home().close_alert()
def article_page(page_num, keywords): articles = Article.query.filter( Article.title.like("%" + keywords + "%")).order_by(Article.id).all() articles = model_json.list_to_json(articles) articles = Page.auto_page(articles, page_num) return articles
def backend(request): article_list = models.Article.objects.filter(blog=request.user.blog) all_count = article_list.count() Page_info = Page(request.GET.get('page'), all_count, 4, 3, '/backend') page_queryset = article_list[Page_info.start():Page_info.end()] return render(request,"backend/backend.html",locals())
def item(category, folder, page): ##利用img base64 读取不在static下的文件 folder_dict_value = folder_dict.get(category) if folder_dict_value: root = folder_dict_value.get('root') folders = folder_dict_value.get('folders') item_key = u'%s-%s' % (category, folder) filenames = item_dict.get(item_key) if filenames: category_dict = Path.get_category() category_echo = category_dict.get(category) item_length = len(filenames) folder_length = len(folders) folder_index = folders.index(folder) last_folder_index = max(1, folder_index - 1) next_folder_index = min(folder_length - 1, folder_index + 1) last_folder = folders[last_folder_index] next_folder = folders[next_folder_index] ##上一篇以及下一篇 page = min(page, item_length) page = max(page, 1) ##page最小取值为1,最大取值为item_length filename = filenames[page - 1] extend = filename.rsplit('.', 1)[-1] img_path = u'%s/%s/%s' % (root, folder, filename) src = img_b64_dict.get(img_path) if src: pass else: img_base64 = Encrypt.img_b64encode(path=img_path) src = u'data:image/%s;base64,%s' % (extend, img_base64) if len(img_b64_dict) > 500: img_b64_dict.popitem(last=False) ##先进先出 img_b64_dict[img_path] = src ##将base64编码字符串放入dict中,便于下次访问(不能过大,否则占用过多内存) last_page = max(1, page - 1) next_page = min(item_length, page + 1) #上一页以及下一页 headers = request.headers agent = headers['User-Agent'] width = '70%' echo = 5 if 'linux' in agent.lower(): width = '100%' echo = 1 item_page_list = Page.get_list(page=page, pages=item_length, echo=echo) return render_template('/image/item.html',category=category,category_echo=category_echo,folder=folder,last_folder=last_folder,\ next_folder=next_folder,last_page=last_page,next_page=next_page,src=src,\ folder_length=folder_length,item_length=item_length,width=width,page=page,\ item_page_list=item_page_list,current_page=page) ##category不存在以及item_key不存在的情况下,均重定向到首页 return redirect('/')