httplistener接收post请求_webGIS实践:4_1_python django实现http get和post

因为我们要用django做geoserver+openlayer的后端,所以只看get和post怎么实现就行了。

一、结构

工程结构如下图:

在新建工程的基础上,新建了一个gismap/geoserver.py;在templates中新建了两个页面get.html和post.html。

2970e236cdab6117b84e0c0cb47d1fcd.png

二、程序

1. geoserver.py

一共三个方法,一个是get请求,一个是post请求,一个是渲染get页面。

# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.shortcuts import render
# 接收get请求数据
def get(request):
    request.encoding = 'utf-8'
    if 'q' in request.GET and request.GET['q']:
        message = '你搜索的内容为: ' + request.GET['q']
    else:
        message = '你提交了空表单'
    return HttpResponse(message)
# 接收POST请求数据
def posthtml(request):
    ctx ={}
    if request.POST:
        ctx['rlt'] = request.POST['q']
    return render(request, "post.html", ctx)
# 渲染表单
def gethtml(request):
    return render(request, 'get.html')

2.urls.py

用来定义url跳转的方法。

from django.conf.urls import url
from . import geoserver
urlpatterns = [
    url(r'^get$', geoserver.get),
    url(r'^gethtml$', geoserver.gethtml),
    url(r'^posthtml$', geoserver.posthtml),
]

3.get.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>django get页面</title>
</head>
<body>
    <form action="/get" method="get">
        <input type="text" name="q">
        <input type="submit" value="搜索">
    </form>
</body>
</html>

4.post.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>django post页面</title>
</head>
<body>
    <form action="/posthtml" method="post">
        {% csrf_token %}
        <input type="text" name="q">
        <input type="submit" value="提交">
    </form>
    <p>{{ rlt }}</p>
</body>
</html>

5.其他

不同的django版本创建的web模板会略有不同。

Python3.7+django3.0.6,已经配好了templates的路径,不需要修改了。

如果配置信息有需要修改的,在settings.py中修改。

三、效果

效果很简单。

运行:python manage.py runserver 0.0.0.0:5000

首先访问127.0.0.1:5000/gethtml

在文本框中随便写点什么,点击搜索。

5783b124c877a9293218f0abaa27cf61.png

跳转至:127.0.0.1:5000/get?q=test

3dde3d83d318ac82b8b44a2b58c33f93.png

访问:127.0.0.1:5000/posthtml

随便写点什么,提交之后,就会在文本框下面显示。

dadd15e88b907f2d7683bee2a8874cc8.png

这是最简单的get和post。

接下来,我们要看看怎么转发geoserver的WMS服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值