Python 作为一门流行语言,用的人不少,但大多介绍都是用于爬虫,而且仅仅适用于个人使用,如何能够利用这个工具与他人进行交互,从而实现广泛的应用?本文提供一个简单的例子,基于Django。
Python下有许多款不同的 Web 框架。Django是最有代表性的一位。
一个简单的功能,Django配置相对简单,本人在某个程序中,发现需要实现一些功能还是需要注意很多实现,这里简单归几个注意点。
(本文中用python 3)
本文做一个简单的检查网站是否可达来作为例子。
【Python Django 搭建网站并实现交互的几个步骤】一、默认安装
安装教程可见:https://www.runoob.com/django/django-install.html,很简单。
这些有很多安装教程,就不在这里介绍了。
二、建立自己的网站
Django 创建自己的项目,使用管理工具 django-admin 即可。
django-admin 的命令如下:
django-admin startproject ipcheck:
创建完成后我们可以查看到python目录下有如下的一些目录:
ipcheck
|-- ipcheck (这个是子目录)
| |-- init.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
|-- manage.py
为了方便,在ipcheck下再建立一个templates的目录,存放网页模板
同时创建一个网页文件 ipcheck.html (具体内容后面再说)
同时也在ipcheck下建立一个程序 ipcheck.py(具体内容后面再说)
ipcheck
|-- ipcheck (这个是子目录)
| |-- _init_.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
| |-- ipcheck.py
|-- templates
| |-- ipcheck.html
| |-- wsgi.py
|-- manage.py
|-- db.sqlite3 (这个文件主要用于数据处理,本文不需要)
安装完成后,启动 网站 python manage.py runserver 0.0.0.0:8000
注意:
(1)runserver 是 manage.py 的功能参数
(2)0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号(也是默认值)。如果需要,也可以设置为其他端口,如8888、9999。
如下图表示正常启动,否则会出现错误:
文章图片
在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下:
文章图片
下面就可以开始做我们的事情了。
三、建立自己的网站
这里先说明几个文件,在ipcheck下的各种.py这些python文件,是处理各种请求的后台软件:
_init_.py 告诉 Python 该目录是一个 Python 包,无须理会。
settings.py是配置文件,
urls.py 是进行url解释,需要根据程序要求进行配置
wsgi.py 用于兼容 WSGI 的Web 服务器入口,无须理会
其他程序就是可以自己来处理了
如果添加了ipcheck后(含ipcheck.py和ipcheck.html),再运行就会出现如下的界面,此时就通过访问 127.0.0.0:8000/ipcheck来浏览我们的程序了。
此时运行 127.0.0.1/admin 就会出现Django的默认登录界面
文章图片
四、ipcheck
目标:把ip地址或者网址输入,然后检查是否可以ping通。如下图:
文章图片
1、ipcheck.py 的代码
在templates 下,建立 ipcheck.html
主要是提供输入界面,可以输入地址或网址,然后检查地址是否返回值。
代码如下:
检查IP地址或网址 - 锐客网
请输入IP地址或网址(多网地址请用分号;
隔开) :
{{ rlt }}
由于 Django的默认配置中没有templates目录,所以首先要修改settings.py 文件中 TEMPLATES定义的路径(如果不改正确,会无法找到ipcheck.html),如下图:
文章图片
文章图片
然后就可以建立我们的处理程序 ipcheck.py 了,该程序应该存放在ipcheck目录下。
程序中应用的库多了一些,可以重新筛选一下。
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import os
from xml.sax.saxutils import unescapefrom django.http import HttpResponse
from django.shortcuts import render_to_response
from django.shortcuts import render
from django.views.decorators import csrf
from django.views.decorators.csrf import csrf_exempt@csrf_exempt# 首先定义ping检查程序,该检查方法会在无法ping通时返回时间很慢
def isPingOK(testserver):try:
exit_code = os.system('ping '+testserver+' >nul')
if exit_code :
return False
else:
return True
except Exception as e:
return False# 接收POST请求数据并处理
def IPCheck(request):
ctx ={}
if 'IPAddr' in request.POST:
ctx['rlt'] = request.POST['IPAddr']
s = ctx['rlt']
urls = s.split(';
')
print('post='+s+'\n\r')
ctx['rlt'] = ''
for url in urls:
print(url+'\n\r')
isOK = isPingOK(url)
if isOK:
ctx['rlt'] += url+' ping OK ===='
else:
ctx['rlt'] += url+' ping error====='
else:
ctx['rlt'] = ""
rethtml = "ipcheck.html"return render(request, rethtml, ctx)
以上代码测试正常,运行 python manage.py runserver 0.0.0.0:8000,会提示已经正常
Performing system checks...System check identified no issues (0 silenced).
November 05, 2019 - 11:02:10
Django version 2.1, using settings 'ipcheck.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CTRL-BREAK.
然后再浏览器中输入 http://127.0.0.1:8000/ipcheck
会出现如下界面
文章图片
点击检查网址,则出现如下结果:
文章图片
在国内,是无法访问google的,加上google,则结果如下:
文章图片
附录:
这个程序只适合练习,其中ping的速度很慢,显示也不漂亮,代码也有多处可以优化。有时在不同浏览器下回出现错误。
请大家检查并提出优化方案,本人后续加以改善。
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)