精华内容
下载资源
问答
  • python获取气象数据开放平台信息

    千次阅读 2015-10-24 11:45:19
    缘由前端时间在练手做一个Android天气预报的App,然后就去找现有的公共API,发现找到的大部分的网址都是 失效的,最后发现了 聚合数据 和 气象数据平台, 由于感觉后者的操作优点麻烦,所以选择了使用前者。 现在...

    缘由

    前端时间在练手做一个Android天气预报的App,然后就去找现有的公共API,发现找到的大部分的网址都是
    失效的,最后发现了 聚合数据气象数据开放平台
    由于感觉后者的操作优点麻烦,所以选择了使用前者。
    现在呢,就是想试试后者。

    介绍

    气象数据平台 是由中国天气网提供的,需要注册+实名验证
    才能够使用,而且好像现在都还是能够免费购买一年的使用,提供了
    * 基础气象数据接口: 包含国内369个地级市未来3天常规预报以及三个气象指数(穿衣指数,舒适度指数,晨练指数)等天气服务数据。
    * 常规气象数据接口: 包含国内全站2566个县级以上城市未来3天常规预报以及三个气象指数(穿衣指数,舒适度指数,晨练指数)等天气服务数据。

    但是调用起来还是比较麻烦的。

    使用说明

    调用规范 规范用于指导三方合作伙伴合理调用指数、3天常规预报(24小时)预报服务数据。
    请求方式:http get
    接口组成:由固定URL加5个不同的参数组成,完整URL需客户端经过固定方式加密后使用。
    数据返回:json
    完整的URL: http://open.weather.com.cn/data/?areaid=“”&type=”“&date=”“&appid=”“&key=”.urlencode($key);
    固定URL:http://open.weather.com.cn/data/

    参数名称 参数含义 参数样例
    Areaid 区域id 单区域:101010100;多区域:101010100|101010200
    Type 数据类型 指数:index_f(基础接口);index_v(常规接口); 3天预报:forecast_f(基础接口);forecast_v(常规接口);
    Date 客户端日期 按照格式yyyyMMddHHmm获取客户端当前时间
    Appid 固定分配的型号标识 某某:004906671841487 传递参数时:截取appid的前6位 生成公钥时:取完整的appid
    Key 令牌 由公钥(public_key)和私钥(private_key)通过固定算法加密生成

    加密方式:
    private_key
    某某:793ffb_SmartWeatherAPI_662cbc7
    private_key仅负责与public_key共同合成key传参,私钥不可见,客户端与服务端各存储一份;
    public_key为不包含key在内的完整URL其它部分(此处appid为完整appid)
    示例:
    http://open.weather.com.cn/data/?areaid=101010100&type=index_f&date=201410230335&appid=22290667181111
    key的算法
    key=base64_encode(hash_hmac(‘sha1’,publickey,private_key,TRUE));
    key加密后通过urlencode对其编码后传参
    注:每一个产品使用用户分配一个唯一标识appid,用于统计用户访问情况、区分用户提供差异服务,终端用户按照终端型号分配,一个型号对应一个标识。

    示例代码

    示例这里我只看了php的代码

    :::PHP
    <!--?php
    set_time_limit(0);
    $private_key = 'xx';
    $appid='xx';
    $appid_six=substr($appid,0,6);
    $areaid = '101010100';  
    $type='forecast_v';
    $date=date("YmdHi");
    $public_key="http://open.weather.com.cn/data/?areaid=".$areaid."&type=".$type."&date=".$date."&appid=".$appid; 
    $key = base64_encode(hash_hmac('sha1',$public_key,$private_key,TRUE));
    
    $URL="http://open.weather.com.cn/data/?areaid=".$areaid."&type=".$type."&date=".$date."&appid=".$appid_six."&key=".urlencode($key);
    echo $URL."<br /-->";
    
    $string=file_get_contents($URL);
    
    echo $string;
    
    ?>
    

    使用python转化上诉代码

    其中前面的转化成python代码都很容易,遇到困难的是Key加密那里
    $key = base64_encode(hash_hmac('sha1',$public_key,$private_key,TRUE));
    我查找了很多资料才知道加密的方法,原因是对加密函数这一块不是很熟悉。
    转发的方法为

    // PHP版
    // HMAC-SHA1加密
    $hmac_sha1_str = base64_encode(hash_hmac("sha1", $string_to_sign, $secret_access_key));
    
    
    # Python版:
    import hmac
    import hashlib
    import base64
    hmac.new(Token,data,hashlib.sha1).digest().encode('base64').rstrip()
    

    所以最终的代码为

    import urllib
    import datetime
    import base64
    import hmac
    import hashlib
    
    private_key = 'XXXXXX_SmartWeatherAPI_XXXXXX' #你申请的private_key
    appid = 'XXXXXX' # 你申请的appid
    appid_six = appid[:6]
    area_id = '101010100' # 区域代码
    type_ = 'forecast_v' # 接口类型
    date = datetime.datetime.now().strftime("%Y%m%d%H%M") # 日期时间
    public_key = "http://open.weather.com.cn/data/?areaid=" + area_id + "&type=" + type_ +"&date=" + date + "&appid=" + appid
    key = urllib.quote(
        hmac.new(private_key, public_key, hashlib.sha1).digest().encode('base64').rstrip()
    )
    url = "http://open.weather.com.cn/data/?areaid=" + area_id + "&type=" + type_ + "&date=" + date + "&appid=" + appid_six + "&key=" + key
    
    展开全文
  • Django ——从request中获取前端数据

    万次阅读 2018-03-27 12:59:59
    Django request 如果说 urls.py 是 Django 中前端页面和后台程序桥梁,那么 request 就是桥上负责运输的小汽车 ... request.MATE获取的是一个标准的python字典。它包含了所有的HTTP请求信息 ...

    Django

    ###request

    如果说 urls.py 是 Django 中前端页面和后台程序桥梁,那么 request 就是桥上负责运输的小汽车
    可以说后端接收到的来至前端的信息几乎全部来自于requests中。

    ##request对象的属性

    • request.META

    request.MATE获取的是一个标准的python字典。它包含了所有的HTTP请求信息

    • 1 CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。

    • 2 CONTENT_TYPE —— 请求的正文的MIME 类型。

    • 3 HTTP_ACCEPT —— 响应可接收的Content-Type。

    • 4 HTTP_ACCEPT_ENCODING —— 响应可接收的编码。

    • 5 HTTP_ACCEPT_LANGUAGE —— 响应可接收的语言。

    • 6 HTTP_HOST —— 客服端发送的HTTP Host 头部。

    • 7HTTP_REFERER —— Referring 页面。

    • 8 HTTP_USER_AGENT —— 客户端的user-agent 字符串。

    • 9 QUERY_STRING —— 单个字符串形式的查询字符串(未解析过的形式)。

    • 10 REMOTE_ADDR —— 客户端的IP 地址。

    • 11 REMOTE_HOST —— 客户端的主机名。

    • 12 REMOTE_USER —— 服务器认证后的用户。

    • 13 REQUEST_METHOD —— 一个字符串,例如"GET" 或"POST"。

    • 14 SERVER_NAME —— 服务器的主机名。

    • 15 SE0RVER_PORT —— 服务器的端口(是一个字符串)
      获取请求的源主机:HttpRequest.get_host()

    • request.scheme

    请求的方式,即http或者是https

    • request.path

    请求的路径,这里的路径是指相对路径,也就是说一个登陆后台页面的请求:http://127.0.0.1:8000/admin 的路径是 /admin
    获取完整路径(包括参数):HttpRequest.get_full_path()
    获取绝对url: HttpRequest.bulid_absolute_uri(location) 此参数默认为完整路径

    • request.encoding

    请求提交的数据的编码方式

    • request.session

    request.session 获取的是一个类似于字典的对象,可以进行读取写入操作,常用来保存一些数据来实现会话跟踪技术。因为 HTTP 是一个无状态,不连续的协议。如果想让服务器记住当前的访问对象,就需要记录请求者的一些信息来达到这个目的。

    # 设置session
    request.session["name"] = "root"
    # 获取session
    name = request.sessin["name"]
    

    !!!说到这里需要提一下,django会默认为session使用json序列化。json序列化只能序列化一些基本数据类型,如数字,字符串,列表等。所以session不能直接存储对象.可以简单的在settings中添加 SESSION_SERIALIZER = "django.contrib.sessions.serializers.PickleSerializer"

    • request.COOKIES

    与session类似,区别是cookies数据是保存在客户端,session数据是保存在服务端。相对而言session更安全,cookies在不同的浏览器上保存数据的大小限制也不同。但是,存在即合理。cooike自有它的好处这里不多说。

    # 设置cookies
    response.set_cookie('name','root')
    # 设置加密cookies
    response.set_cookie('passsword','123456',salt='@#$!%^&')
    # 获取cookie
    request.COOKIES.get("name")
    # 获取加密的cookie
    request.get_signed_cookie("password",salt="@#$!%^&")
    
    • request.method

    请求方式 POST/GET…

    ####下面正式开始获取数据

    就是在这里遇见了一些小问题,所以导致我写这篇文章来记录一下

    • request.body

    请求的主体,返回的是一个字符串

    • request.data

    请求的数据部分,返回的是一个字典对象(除此之外,与request.body是很类似的)

    • request.POST

    获取post方式表单中提交的数据

    request.POST["username"]
    request.POST.get("username")
    
    • request.GET

    获取get方式表单中或url提交的数据

    request.GET["username"]
    request.GET.get("username")
    
    展开全文
  • 转载:http://www.codexiu.cn/python/blog/11774/ ...前端 文本域和单选按钮表单获取方法一样 <formclass="form-horizontal"method="post"> <divclass="form-group"> <labelfor="username"c...

    转载:http://www.codexiu.cn/python/blog/11774/

    一、 文本域和单选按钮

    前端 文本域和单选按钮表单获取方法一样

      <form class="form-horizontal" method="post">
        <div class="form-group">
          <label for="username" class="col-sm-2 control-label">Username</label>
          <div class="col-sm-10">
            <input type="text" class="form-control" id="username" name="username" placeholder="Username" autofocus="" >
          </div>
        </div>
    ....
    ...
      <div class="row">
            <div class="col-sm-2 col-sm-offset-2">
                <input name="sex" value="M" type="radio"  checked="checked"> 男
            </div>
     <div class="col-sm-2 ">
                <input name="sex" value="F" type="radio"> 女
            </div>
                        
        </div>
    </form>

    文本

    pyhon 后端用request.values.get("name") 去获取

    if request.method == "POST":   
        username = request.values.get("username")
        sex = request.values.get("sex")

    二、多选按钮checkbox

    <div class="row">
        <div class="col-sm-2 ">
            <label>
                <input name="s_option" value="basketball" type="checkbox"> 篮球
            </label>
        </div>
        <div class="col-sm-2 ">
            <label>
            <input name="s_option" value="football" type="checkbox"> 足球
            </label>
        </div>
        <div class="col-sm-2 ">
            <label>
                <input name="s_option" value="badminton"  type="checkbox"> 羽毛球
            </label>
        </div>
    </div>

    后端使用request.values.getlist("s_option") 去获取,获取的value会组成一个列表

    s_option =  request.values.getlist("s_option")
    for s in s_option:
        pass

    三、select 下拉框

    前端表现形式

    <select class="form-control" name="manufacturer" id="manufacturer">
             <option></option>
             <option selected="selected">--请选择厂家--</option>
             <option >HP</option>
             <option >Huawei</option>
             <option >Inspur</option>
    </select>

    pyhon 后端也是用request.values.get("name") 去获取

    展开全文
  • Django 关于 从request中获取前端数据

    千次阅读 2018-05-19 12:18:49
    Djangorequest如果说 urls.py 是 Django 中前端页面和后台程序桥梁,...request对象的属性request.METArequest.MATE获取的是一个标准的python字典。它包含了所有的HTTP请求信息1 CONTENT_LENGTH —— 请求的正文的长...

    Django

    request

    如果说 urls.py 是 Django 中前端页面和后台程序桥梁,那么 request 就是桥上负责运输的小汽车 
    可以说后端接收到的来至前端的信息几乎全部来自于requests中。

    request对象的属性

    • request.META

      request.MATE获取的是一个标准的python字典。它包含了所有的HTTP请求信息

      • 1 CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。
      • 2 CONTENT_TYPE —— 请求的正文的MIME 类型。
      • 3 HTTP_ACCEPT —— 响应可接收的Content-Type。
      • 4 HTTP_ACCEPT_ENCODING —— 响应可接收的编码。
      • 5 HTTP_ACCEPT_LANGUAGE —— 响应可接收的语言。
      • 6 HTTP_HOST —— 客服端发送的HTTP Host 头部。
      • 7HTTP_REFERER —— Referring 页面。
      • 8 HTTP_USER_AGENT —— 客户端的user-agent 字符串。
      • 9 QUERY_STRING —— 单个字符串形式的查询字符串(未解析过的形式)。
      • 10 REMOTE_ADDR —— 客户端的IP 地址。
      • 11 REMOTE_HOST —— 客户端的主机名。
      • 12 REMOTE_USER —— 服务器认证后的用户。
      • 13 REQUEST_METHOD —— 一个字符串,例如”GET” 或”POST”。
      • 14 SERVER_NAME —— 服务器的主机名。
      • 15 SE0RVER_PORT —— 服务器的端口(是一个字符串) 
        获取请求的源主机:HttpRequest.get_host()
    • request.scheme

      请求的方式,即http或者是https

    • request.path

      请求的路径,这里的路径是指相对路径,也就是说一个登陆后台页面的请求:http://127.0.0.1:8000/admin 的路径是 /admin 
      获取完整路径(包括参数):HttpRequest.get_full_path() 
      获取绝对url: HttpRequest.bulid_absolute_uri(location) 此参数默认为完整路径

    • request.encoding

      请求提交的数据的编码方式

    • request.session

      request.session 获取的是一个类似于字典的对象,可以进行读取写入操作,常用来保存一些数据来实现会话跟踪技术。因为 HTTP 是一个无状态,不连续的协议。如果想让服务器记住当前的访问对象,就需要记录请求者的一些信息来达到这个目的。

    # 设置session
    request.session["name"] = "root"
    # 获取session
    name = request.sessin["name"]
    • 1
    • 2
    • 3
    • 4

    !!!说到这里需要提一下,django会默认为session使用json序列化。json序列化只能序列化一些基本数据类型,如数字,字符串,列表等。所以session不能直接存储对象.可以简单的在settings中添加 SESSION_SERIALIZER = "django.contrib.sessions.serializers.PickleSerializer"


    • request.COOKIES 

    与session类似,区别是cookies数据是保存在客户端,session数据是保存在服务端。相对而言session更安全,cookies在不同的浏览器上保存数据的大小限制也不同。但是,存在即合理。cooike自有它的好处这里不多说。
    # 设置cookies
    response.set_cookie('name','root')
    # 设置加密cookies
    response.set_cookie('passsword','123456',salt='@#$!%^&')
    # 获取cookie
    request.COOKIES.get("name")
    # 获取加密的cookie
    request.get_signed_cookie("password",salt="@#$!%^&")
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8


    • request.method 

    请求方式 POST/GET….

    下面正式开始获取数据

    就是在这里遇见了一些小问题,所以导致我写这篇文章来记录一下

    • request.body

      请求的主体,返回的是一个字符串

    • request.data

      请求的数据部分,返回的是一个字典对象(除此之外,与request.body是很类似的)

    • request.POST

      获取post方式表单中提交的数据

    request.POST["username"]
    request.POST.get("username")
    • 1
    • 2


    • request.GET 

    获取get方式表单中或url提交的数据

    request.POST["username"]
    request.POST.get("username")
    展开全文
  • 总结:第一次直接用取数据库的数据格式报错,这在我的bug记录中有说明 其次使用以下代码: def getdata(request): # 使用ORM # all()返回的是QuerySet 数据类型;values()返回的是ValuesQuerySet 数据类型 ret...
  • 首先需要安装pip install Flask from flask import Flask from ..._': app.run(host='127.0.0.1', port=9999) 用浏览器或者其他的测试接口工具访问 http://127.0.0.1:9999/ 即可获取数据 可以关注我的公众号:技术趣谈
  • search_category = request.GET.get(‘course’) # 获取搜索框输入内容 category_s = Category.objects.filter(name__contains=search_category ) #__contains这里可以实现模糊查询,name和#category是数据库里的值...
  • python部分 def mallTemplateConfig(request):  gameRole_edit = request.session.get('gameRole_edit', []) #获取json串  return render(request, "operationGL/mallTemplateConfig.html",  
  • 前端传参使用加密后的数据时,需要获取加密算法获得接口参数进行接口自动化 解决方法: import execjs def get_des_psswd(data, key): jsstr = get_js() ctx = execjs.compile(jsstr) #加载JS文件 return (ctx....
  • 获取前端数据时遇到结构化数据特殊字符被转义问题 比如 还有 p =‘&lt;abc&gt;‘ 在这种情况下可以利用python的html包 data = '{&quot;list&quot;:[{&quot;comm_msg_info&quot;:{&...
  • python部分 def mallTemplateConfig(request): gameRole_edit = request.session.get('gameRole_edit', []) #获取json串 return render(request, operationGL/mallTemplateConfig.html, { 'gameRole_edit': ...
  • flask获取前端传递数据的理解一

    千次阅读 2017-10-10 18:08:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • python100day第二阶段:web前端和爬虫-day20-requests获取数据和html基础 1.requests的基本使用 import requests # 通过requests给指定的网页发送get请求 response = requests.get('...
  • 完整python项目,可以自己运行。利用python爬虫 爬取今日头条后台数据。然后使用flask框架 实现自己的后台 ,通过爬虫获取 今日头条数据。html实现前端 显示数据。网站UI一级界面自己实现,仿照今日头条网站
  • php 前端获取数据

    2016-04-01 10:10:00
    pre name="code" class="python"><!doctype html> <html lang="en"> <head> <meta name="Generator" content="EditPlus?"> <meta name="Author" content=""> <...
  • 目的:学习前端脚本语言javascript的基本概念、页面引入方式、获取页面元素及操作元素属性的技巧,学习函数的基本定义方法和使用方法。JavaScript介绍JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是...
  • python前端之JavaScript

    2018-09-15 21:32:00
    目的:学习前端脚本语言javascript的基本概念、页面引入方式、获取页面元素及操作元素属性的技巧,学习函数的基本定义方法和使用方法。 JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决...
  • <p>python小白一枚,现在使用cv2读摄像头视频流,读取到后,想断开连接,释放摄像头,切换前端js显示视频,但是不知道怎么释放。百度也是使用“cap.release()”但是不行,...
  • 页面: 事件是视图层到逻辑层的通讯方式。...可以在微信页面使用列表来动态展示数据,然后将动作绑定在列表的每一个元素上面,同时给JS传递相应的data或者dataset,使用语法如下: <view class=...
  • 首先简要说明:前端向后端请求数据,后端根据前端请求数据的类别分析其需求,并连接到数据库获取相应数据: 来一段简单的实例代码模拟淘宝商城: 前端代码: <!DOCTYPE html> <html> <head&...
  • 我采用的数据交互的数据格式是JSON数据。我在后端,每次都将每一个订单的所包含的每一样商品数据以字典的形式存在列表中。然后在前端将这一列表转存到前端js代码中定义的列表中。 之前学习了一段时间vueÿ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 556
精华内容 222
关键字:

python获取前端数据

python 订阅