import json import urllib.parse from django import template from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render, get_object_or_404 from .models import Company from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render, get_object_or_404 from .models import Company from django.db.models import Q def home(request): # 这里不再执行任何数据库查询,直接渲染主页模板 return render(request, 'business_information/home.html') def about_us(request): # 这里不再执行任何数据库查询,直接渲染主页模板 return render(request, 'business_information/about_us.html') def company_list(request): # 尝试打开并加载JSON文件 json_file_path = 'static/file/city.json' try: with open(json_file_path, 'r', encoding='utf-8') as file: city_data = json.load(file) except FileNotFoundError: return render(request, 'business_information/error.html', {'error': 'JSON文件未找到'}) # 尝试打开并加载JSON文件 file_path = 'static/file/industry.json' with open(file_path, 'r', encoding='utf-8') as file: industry_data = json.load(file) # 初始化一个新的字典来存储省份和城市信息 provinces_cities = { "直辖市": ['北京市', '天津市', '重庆市', '上海市'] } # 获取省份数据 province = city_data.get('00') for num, name in province.items(): if name in provinces_cities.get('直辖市'): continue else: provinces_cities[name] = [] for k, v in city_data[num].items(): provinces_cities[name].append(v) # 返回解析后的省份和城市信息 return render(request, 'business_information/company_list.html', {'provinces_cities': provinces_cities, 'industry_data': industry_data}) def list_detail(request): # 获取查询参数 query_name = request.GET.get('name', '') query_province = request.GET.get('province', '') query_city = request.GET.get('city', '') query_district = request.GET.get('district', '') query_industry = request.GET.get('industry', '') # 构建查询条件(Q 对象用于执行复杂查询) query_conditions = Q() if query_name: query_conditions &= Q(name__icontains=query_name) if query_province: query_conditions &= Q(province__icontains=query_province) if query_city: query_conditions &= Q(city__icontains=query_city) if query_district: query_conditions &= Q(district__icontains=query_district) if query_industry: query_conditions &= Q(industry__icontains=query_industry) # 过滤查询集 companies = Company.objects.filter(query_conditions) count = len(companies) # 分页 paginator = Paginator(companies, 10) # 每页显示10条记录 page = request.GET.get('page', 1) try: companies = paginator.page(page) except PageNotAnInteger: companies = paginator.page(1) except EmptyPage: companies = paginator.page(paginator.num_pages) # 查询条件 json_file_path = 'static/file/city.json' try: with open(json_file_path, 'r', encoding='utf-8') as file: city_data = json.load(file) except FileNotFoundError: return render(request, 'business_information/error.html', {'error': 'JSON文件未找到'}) # 尝试打开并加载JSON文件 file_path = 'static/file/industry.json' with open(file_path, 'r', encoding='utf-8') as file: industry_data = json.load(file) industries_data = [] # 处理行业 for k in industry_data.keys(): industries_data.append(k) # 初始化一个新的字典来存储省份和城市信息 provinces_cities = [] # 获取省份数据 province = city_data.get('00') for num, name in province.items(): provinces_cities.append(name) # 处理查询字符串 get_data = request.GET.copy() if 'page' in get_data: del get_data['page'] query_string = urllib.parse.urlencode(get_data) # 这里不再执行任何数据库查询,直接渲染主页模板 return render(request, 'business_information/company_list_detail.html', context={'provinces_cities': provinces_cities, 'industries_data': industries_data, 'companies': companies, 'query_string': query_string, 'query_name': query_name, 'query_province': query_province, 'query_city': query_city, 'query_district': query_district, 'query_industry': query_industry, 'count': count}) def company_detail(request, enterprise_id): company = get_object_or_404(Company, enterprise_id=enterprise_id) return render(request, 'business_information/company_detail.html', {'company': company})