|
Our demand is hoped the data stored on the server, then you can request data to the server each time a user clicks on the need to achieve a similar following logic functions:
Users click -> onchange trigger event -> request data to the server -> server returns data -> add data to the current page
Here with the Python Django to achieve this function.
(PS: Django platform about how to deploy and set up, there is not much to say, we can look at "Django Book", I had to find a lot of information on the Internet, users write or some other books, are not "Django Book "I speak meticulous and thorough, it is strongly recommended!)
-------------------------------------------------- ------------------------------
1. Platform Environment
Operating System: Windows 7 64 Wei
Development Environment: Eclipse PyDev
-------------------------------------------------- ------------------------------
2. The folder structure
When you create a project or when Django app, many files are automatically generated, the following will be able to talk about the lingua franca of the file.
-------------------------------------------------- ------------------------------
3. The main function of the code file
(1) MapPro / settings.py
The key is used to set the statics and templates, to tell the presence of these two paths Django directories, add the code as follows:
TEMPLATE_DIRS = (
os.path.join (BASE_DIR, 'templates'),
)
STATICFILES_DIRS = (
os.path.join (BASE_DIR, 'statics'),
)
(2) MapPro / urls.py
The mapping between the path and the views url view function, the entire code is as follows:
from django.conf.urls import patterns, include, url
from django.contrib import admin
from app01 import views
urlpatterns = patterns ( '',
# Examples:
# Url (r '^ $', 'MapPro.views.home', name = 'home'),
# Url (r '^ blog /', include ( 'blog.urls')),
url (r '^ admin /', include (admin.site.urls)),
url (r '^ map / $', views.Map),
(R '^ GetCityData / $', views.Return_City_Data),
(R '^ GetCountryData / $', views.Return_Country_Data),
)
(3) app01 / views.py
View function file to handle business logic, all the code is as follows:
from django.shortcuts import render, render_to_response
from django.http import HttpResponse
from django.core.context_processors import request
import json
# Create your views here.
def Map (request):
return render_to_response ( "map.html")
#return HttpResponse ( "Hello!")
Place_dict = {
"GuangDong": {
"GuangZhou": [ "PanYu", "HuangPu", "TianHe"],
"QingYuan": [ "QingCheng", "YingDe", "LianShan"],
"FoShan": [ "NanHai", "ShunDe", "SanShui"]
},
"ShanDong": {
"JiNan": [ "LiXia", "ShiZhong", "TianQiao"],
"QingDao": [ "ShiNan", "HuangDao", "JiaoZhou"]
},
"HuNan": {
"ChangSha": [ "KaiFu", "YuHua", "WangCheng"],
"ChenZhou": [ "BeiHu", "SuXian", "YongXian"]
}
};
def Return_City_Data (request):
province = request.GET [ 'Province']
print province
City_list = []
for city in Place_dict [province]:
City_list.append (city)
return HttpResponse (json.dumps (City_list))
def Return_Country_Data (request):
province, city = request.GET [ 'Province'], request.GET [ 'City']
print province, city
Country_list = Place_dict [province] [city]
return HttpResponse (json.dumps (Country_list))
The code here is relatively simple, do not write a comment.
(4) templates / map.html
templates directory is mainly used to place the template file page, and here I only created map.html file, as follows:
|
|