1. 程式人生 > 實用技巧 >使用django搭建簡單的ip地址獲取所在國家和城市api伺服器

使用django搭建簡單的ip地址獲取所在國家和城市api伺服器

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,JsonResponse
from 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: return
JsonResponse({'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

# 測試