使用django搭建簡單的ip地址獲取所在國家和城市api伺服器
阿新 • • 發佈:2020-12-30
1.基本環境配置
windows 10
安裝python3.7.2
安裝虛擬環境(避免環境之間相互汙染)
C:\Users\ws>pip install virtualenv
pip install virtualenvwrapper-win
# 建立基於python3.7的虛擬環境
mkvirtualenv.bat python37_django2
# 進入虛擬環境
workon python37_django2
# 安裝基本的依賴外掛
pip install django==2.1.2
pip install requests
pip install requests geoip2
# 進入d:/python 這個原始碼目錄,在指定位置建立專案
django-admin startproject simple_ip_server
cd simple_ip_server
python manage.py startapp ipserver
2.設定IDE工具開發環境
用pycharm開啟專案
3.配置django
配置基本的環境,新增app
設定 語言、時區 環境
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
編寫api的檢視
ipserver/views.py # coding:utf-8 from django.http import HttpResponse,JsonResponsefrom django.views import View import geoip2.database class IpServer(View): def get(self, request): reader = geoip2.database.Reader(r'D:\python\simple_ip_server\ipserver\GeoLite2-City.mmdb') ipaddress = request.GET.get('ipaddress', '') if not ipaddress: returnJsonResponse({'errorcode':-1, 'errmsg': 'ip地址不能為空'}) response = reader.city(ipaddress) country = response.country.iso_code cityname = response.city.name data = {'country':country, 'city':cityname} return JsonResponse({'errorcod':0, 'errmsg': 'success', 'data': data})
# 設定urls 路由資訊
ipserver/urls.py
# _*_ coding:utf-8 _*_ # __author__ == 'jack' # __date__ == '2020-12-30 10:41 AM' from django.urls import path from .views import IpServer urlpatterns = [ path('ip/', IpServer.as_view()) ]
在總路由 simple_ip_server/urls.py 中引入
from django.contrib import admin from django.urls import path, include from ipserver import urls as ipserver_urls urlpatterns = [ path('admin/', admin.site.urls), path('', include(ipserver_urls)) ]
# 啟動伺服器
(python37_django2) D:\python\simple_ip_server>python manage.py runserver
# 測試