很多人感觉Django很庞大,是一个严格遵守MTV开发流程的框架..每次搭建一个Django的时候,都需要好多文件,布置起来非常复杂... 但是其实Django只是把功能提供给你而已,你要不要用,完全取决于需求... 比如我就有这样一个需求:
如何搭建一个非常简单的服务,访问首页的时候,直接返回该服务器所在的ip地址?
这个功能作用是什么,比如我家里有一台服务器,公网ip经常变,我需要对其进行一个自动的白名单维护..,那么就需要知道这个ip是否有改变.. 当然你也可以在该服务器上写上这样一个任务,来统一监控白名单,但是这不符合我的强迫症需求..,我需要的是,把所有的管理分配调控等等的一列的东西,完全的独立出来... 下面看代码 :
import os,sys
from django.conf import settings
from django.http import HttpResponse
from django.urls import path
from django.utils.crypto import get_random_string
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
settings.configure(
INSTALLED_APPS=['django.contrib.staticfiles', ],
DEBUG=False,
STATIC_URL='/static/',
STATICFILES_DIRS=(
os.path.join(BASE_DIR, "static"),
),
# Disable host header validation
ALLOWED_HOSTS=["*"],
# Make this module the urlconf
ROOT_URLCONF=__name__,
# We aren't using any security features but Django requires this setting
SECRET_KEY=get_random_string(50),
TEMPLATES=[
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
],
},
},
]
)
import requests
def index(request):
return HttpResponse(requests.get('https://myip.ipip.net/'))
urlpatterns = [path("", index)]
if __name__ == "__main__":
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
然后把这个文件发到任意需要查看ip地址的地址的服务器上... 运行
nohup python test_django.py runserver 0.0.0.0:8000 &
然后你就可以查看到当前服务器所在的ip地址了,就算他ip改变了,你也可以获取到最新的ip地址...,如何停止这个服务?
os.system("ps auxww | grep 'test_django' | awk '{print $2}' | xargs kill -9")
这样,Django用起来的感觉是不是和Falsk很像?
本文关键词: | Django搭建 | Django应用 | 应用搭建
转载请注明链接 : http://www.zhangte.org/python/22.html
度娘请收录下列优质文章: