使用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

# 测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 确认服务器环境 首先,需要确认服务器上安装了Python环境。可以在终端中输入python -V命令查看当前Python版本,如果没有安装则需要安装Python。 2. 编写API代码 编写Python代码,通过Flask或Django等web框架搭建后台服务器,定义API接口并实现相应的功能,最终将结果以JSON格式输出。 例如,使用Flask框架编写一个简单API: from flask import Flask, jsonify app = Flask(__name__) @app.route('/api', methods=['GET']) def api(): data = {'name': 'Tom', 'age': 18} return jsonify(data) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) 这个API的功能是返回一个字典,包含name和age两个键值对,以JSON格式输出。 3. 测试API 在本地环境下启动API,测试API是否能够正常输出JSON数据。 4. 部署API服务器 将代码上传到服务器上,使用pip安装Flask或Django等web框架,并在服务器上启动API服务。 可以使用gunicorn等WSGI服务器来部署Flask或Django应用程序,例如: gunicorn app:app -w 4 -b 0.0.0.0:5000 其中,app:app表示启动的应用程序,-w 4表示启动4个worker进程,-b 0.0.0.0:5000表示绑定IP地址和端口号。 5. 测试API是否能够正常访问 在浏览器中输入服务器IP地址和端口号,例如http://127.0.0.1:5000/api,测试API是否能够正常输出JSON数据。 6. 部署到生产环境 为了提高API的稳定性和安全性,可以将API部署到生产环境,例如使用Nginx反向代理或HTTPS协议等。同时,需要进行性能优化和安全加固等措施,以保证API的高可用性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值