js天气预报代码是什么_js天气预报代码
1.VB 怎么实现点击按钮自动获取天气预报
2.django如何实现异步post
3.如何把天气预报显示在苹果手机桌面上
4.怎么用php抓取天气预报?先说下思路,再举个例子。
5.ASP用正则表达式如何取出HTML网页中TABLE中每一个单元格里的文字?
如果是要调用webservice的话,JS很难实现,因为webservice的客户端有很多JAR包的,除非用JS模拟JAVA的中的webservice调用。
其实你可以到网上找一个天气预报的页面,然后直接在页面上嵌套一个iframe,或者用AJAX获取response,然后通过document.getElementById('xx').innerHTML = '得到的response字符串';的方式来实现。
GOOD LUCK!
VB 怎么实现点击按钮自动获取天气预报
WebService默认返回的是Xml格式的。你可以把Xml看成是特殊的Html。使用jQuery进行解析。$("Xml标签名称").text();返回某个特定标签的中间包含的内容。我通过一个天气预报查询的Demo,以下是代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ://.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" ://.w3.org/1999/xhtml">
<head>
<title>JQuery AJAX示例代码</title>
<!--
本综合示例演示指定一个特定的,联动的Dropdownlist城市显示天气预报
1)程序一开始加载
-->
<script src=" ://ajax.microsoft/ajax/jquery/jquery-1.4.4.min.js" type="text/jascript"></script>
<script> $(function () { //先获取全部的省等地方(返回一个xml的string数组)
$.ajax({ type: "post",
url: " ://.webxml.cn/webservices/weatherwebservice.asmx/getSupportProvince",
datatype: "xml",
success: function (result) {
$(result).find("string").each(
function () { //$(this).text()的“text”方法可以获取html容器和xml容器的文字
$("#selProvinces").end("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>");
});
}
}); //然后根据选择的省,加载所有的市
$("#selProvinces").change(function () { //清空所有项目
$("#selCities").empty();
//动态加载
$.ajax({ type: "post",
timeout: 1200,
url: " ://.webxml.cn/webservices/weatherwebservice.asmx/getSupportCity",
data: "byProvinceName=" + $("#selProvinces").val(), //给Service传递参数
datatype: "xml", //成功加载:
success: function (result) {
$(result).find("string").each(function () { $("#selCities").end("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>"); });
}
}); });
//根据动态选择的城市,查询对应的天气预报情况:
$("#selCities").change(function () {
$("#ulResult").empty(); //因为放到Dropdownlist中的选项是“名称(编号)”,所以只要名称
var foundcontent = $.trim($("#selCities").val().substring(0, $("#selCities").val().indexOf("("))); $.ajax({ type: "post",
url: " ://.webxml.cn/webservices/weatherwebservice.asmx/getWeatherbyCityName",
data: "theCityName=" + foundcontent,
datatype: "xml", //准备加载(注意:S必须大写!)
beforeSend: function () {
$("#spResult").css("display", "block");
}, //成功了……
success: function (result) { $(result).find("string").each(function () { //排除第三个输出
if ($(this).text().indexOf(".gif")>0) {
$("#ulResult").end("<li><image src='Image/" + $(this).text() + "'/></li>");
}
else {
if($(this).text().indexOf(".jpg")<0)
{
$("#ulResult").end("<li>" + $(this).text() + "</li>");
}
}
});
}, //完成了……
complete: function () {
$("#spResult").css("display", "none");
}
}) });
})
</script>
<style type="text/css">
#Select1
{
width: 198px;
}
#selCities
{
width: 233px;
}
#selProvinces
{
width: 227px;
}
</style>
</head>
<body>
请选择你需要的省(市):<select id="selProvinces">
</select>
请选择你需要的区(县):<select id="selCities">
</select>
<hr />
查询结果:<span id="spResult" style="display: none"><font color="red">请稍后……</font></span>
<ul id="ulResult">
</ul>
</body>
</html>
django如何实现异步post
为了方便,文本框改成数组控件。代码中用北京作为天气预报地点,改的话将网址改下即可,具体方法可以百度。另外,新浪天气预报只有4天。最后说明一下,除了标签和文本框,没用其它控件。
如何把天气预报显示在苹果手机桌面上
导读:今天首席CTO笔记来给各位分享关于django如何实现异步post的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
Django中怎么使用django-celery完成异步任务许多Django应用需要执行异步任务,以便不耽误request的执行.我们也可以选择许多方法来完成异步任务,使用Celery是一个比较好的选择,因为Celery
有着大量的社区支持,能够完美的扩展,和Django结合的也很好.Celery不仅能在Django中使用,还能在其他地方被大量的使用.因此一旦学会使用Celery,我
们可以很方便的在其他项目中使用它.
1.Celery版本
本篇博文主要针对Celery3.0.x.早期版本的Celery可能有细微的差别.
2.Celery介绍
Celery的主要用处是执行异步任务,可以选择延期或定时执行功能.为什么需要执行异步任务呢?
第一,设用户正发起一个request,并等待request完成后返回.在这一request后面的view功能中,我们可能需要执行一段花费很长时间的程序任务,这一时间
可能远远大于用户能忍受的范围.当这一任务并不需要立刻执行时,我们便可以使用Celery在后台执行,而不影响用户浏览网页.当有任务需要访问远程服务器完
成时,我们往往都无法确定需要花费的时间.
第二则是定期执行某些任务.比如每小时需要检查一下天气预报,然后将数据储存到数据库中.我们可以编写这一任务,然后让Celery每小时执行一次.这样我们
的web应用便能获取最新的天气预报信息.
我们这里所讲的任务task,就是一个Python功能(function).定期执行一个任务可以被认为是延时执行该功能.我们可以使用Celery延迟5分钟调用function
task1,并传入参数(1,2,3).或者我们也可以每天运行该function.
我们偏向于将Celery放入项目中,便于task访问统一数据库和Django设置.
当task准备运行时,Celery会将其放入列队queue中.queue中储存着可以运行的task的list.我们可以使用多个queue,但为了简单,这里我们只使用一个.
将任务task放入queue就像加入todolist一样.为了使task运行,我们还需要在其他线程中运行的苦工worker.worker实时观察着代运行的task,并逐一运行这
些task.你可以使用多个worker,通常他们位于不同服务器上.同样为了简单起见,我们这只是用一个worker.
我们稍后会讨论queue,worker和另外一个十分重要的进程,接下来我们来动动手:
3.安装Celery
我们可以使用pip在vietualenv中安装:
pipinstalldjango-celery
4.Django设置
我们暂时使用djangorunserver来启动celery.而Celery代理人(broker),我们使用Djangodatabasebrokerimplementation.现在我们只需要知道Celery
需要broker,使用django自身便可以充当broker.(但在部署时,我们最好使用更稳定和高效的broker,例如Redis.)
在settings.py中:
importdjcelery
djcelery.setup_loader()
BROKER_URL='django://'
...
INSTALLED_APPS=(
...
'djcelery',
'kombu.transport.django',
...
)
第一二项是必须的,第三项则告诉Celery使用Django项目作为broker.
在INSTALLED_APPS中添加的djcelery是必须的.kombu.transport.django则是基于Django的broker
最后创建Celery所需的数据表,如果使用South作为数据迁移工具,则运行:
pythonmanage.pymigrate
否则运行:(Django1.6或Django1.7都可以)
pythonmanage.pysyncdb
5.创建一个task
正如前面所说的,一个task就是一个Pyhtonfunction.但Celery需要知道这一function是task,因此我们可以使用celery自带的装饰器decorator:@task.在
django目录中创建taske.py:
fromceleryimporttask
@task()
defadd(x,y):
returnx+y
当settings.py中的djcelery.setup_loader()运行时,Celery便会查看所有INSTALLED_APPS中目录中的tasks.py文件,找到标记为task的function,并
将它们注册为celerytask.
将function标注为task并不会妨碍他们的正常执行.你还是可以像平时那样调用它:z=add(1,2).
6.执行task
让我们以一个简单的例子作为开始.例如我们希望在用户发出request后异步执行该task,马上返回response,从而不阻塞该request,使用户有一个流畅的访问
过程.那么,我们可以使用.delay,例如在在views.py的一个view中:
frommy.tasksimportadd
...
add.delay(2,2)
...
Celery会将task加入到queue中,并马上返回.而在一旁待命的worker看到该task后,便会按照设定执行它,并将他从queue中移除.而worker则会执行以下代
码:
importmy.tasks.add
my.tasks.add(2,2)
7.关于import
这里需要注意的是,在impprttask时,需要保持一致.因为在执行djcelery.setup_loader()时,task是以INSTALLED_APPS中的名,
加.tasks.function_name注册的,如果我们由于pythonpath不同而使用不同的引用方式时(例如在tasks.py中使用frommyproject.my.tasksimport
add形式),Celery将无法得知这是同一task,因此可能会引起奇怪的bug.
8.测试
a.启动worker
正如之前说到的,我们需要worker来执行task.以下是在开发环境中的如何启动worker:
首先启动terminal,如同开发django项目一样,激活virtualenv,切换到django项目目录.然后启动django自带web服务器:pythonmanage.pyrunserver.
然后启动worker:
pythonmanage.pyceleryworker--loglevel=info
此时,worker将会在该terminal中运行,并显示输出结果.
b.启动task
打开新的terminal,激活virtualenv,并切换到django项目目录:
$pythonmanage.pyshell
frommy.tasksimportadd
add.delay(2,2)
此时,你可以在worker窗口中看到worker执行该task:
[2014-10-0708:47:08,076:INFO/MainProcess]Gottaskfrombroker:my.tasks.add[e080e047-b2a2-43a7-af74-d7d9d98b02fc]
[2014-10-0708:47:08,299:INFO/MainProcess]Taskmy.tasks.add[e080e047-b2a2-43a7-af74-d7d9d98b02fc]succeededin0.183349132538s:4
9.另一个例子
下面我们来看一个更为真实的例子,在views.py和tasks.py中:
#views.py
frommy.tasksimportdo_something_with_form_data
defview(request):
form=SomeForm(request.POST)
ifform.is_valid():
data=form.cleaned_data
#Scheduleatasktoprocessthedatalater
do_something_with_form_data.delay(data)
returnrender_to_response(...)
#tasks.py
@task
defdo_something_with_form_data(data):
call_slow_web_service(data['user'],data['text'],...)
10.调试
由于Celery的运行需要启动多个部件,我们可能会漏掉一两个.所以我们建议:
使用最简单的设置
使用pythondebug和logging功能显示当前的进程
11.Eager模式
如果在settings.py设置:
CELERY_ALWAYS_EER=True
那么Celery便以eager模式运行,则task便不需要加delay运行:
#若启用eager模式,则以下两行代码相同
add.delay(2,2)
add(2,2)
12.查看queue
因为我们使用了django作为broker,queue储存在django的数据库中.这就意味着我们可以通过djangoadmin查看该queue:
#admin.py
fromdjango.contribimportadmin
fromkombu.transport.djangoimportmodelsaskombu_models
admin.site.register(kombu_models.Message)
13.检查结果
每次运行异步task后,Celery都会返回AsyncResult对象作为结果.你可以将其保存,然后在将来查看该task是否运行成功和返回结果:
#views.py
result=add.delay(2,2)
...
ifresult.ready():
print"Taskhasrun"
ifresult.successful():
print"Resultwas:%s"%result.result
else:
ifisinstance(result.result,Exception):
print"Taskfailedduetoraisinganexception"
raiseresult.result
else:
print"Taskfailedwithoutraisingexception"
else:
print"Taskhasnotyetrun"
14.定期任务
还有一种Celery的常用模式便是执行定期任务.执行定期任务时,Celery会通过celerybeat进程来完成.Celerybeat会保持运行,一旦到了某一定期任务需要执
行时,Celerybeat便将其加入到queue中.不像worker进程,Celerybeat只有需要一个即可.
启动Celerybeat:
pythonmanage.pycelerybeat
使Celery运行定期任务的方式有很多种,我们先看第一种,将定期任务储存在django数据库中.即使是在django和celery都运行的状态,这一方式也可以让我们
方便的修改定期任务.我们只需要设置settings.py中的一项便能开启这一方式:
#settings.py
CELERYBEAT_SCHEDULER='djcelery.schedulers.DatabaseScheduler'
Django配置Celery执行异步和同步任务(tasks))
celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。用典型的生产者-消费者模型,主要由三部分组成:
比如系统上线前后台批量导入历史数据,发送短信、发送邮件等耗时的任务
1.安装RabbitMQ,这里我们使用RabbitMQ作为broker,安装完成后默认启动了,也不需要其他任何配置
Ubuntulinux安装
CentOSLinux安装
苹果mac安装需要配置
配置环境变量(苹果用户)
启动rabbitmq-server
2.安装celery
3.celery用在django项目中,django项目目录结构(简化)如下
4.创建oa/celery.py主文件
5.在oa/__init__.py文件中增加如下内容,确保django启动的时候这个能够被加载到
6.各应用创建tasks.py文件,这里为users/tasks.py
7.views.py中引用使用这个tasks异步处理
8.启动celery
9.这样在调用post这个方法时,里边的add就可以异步处理了
定时任务的使用场景就很普遍了,比如我需要定时发送报告给老板~
1.oa/celery.py文件添加如下配置以支持定时任务crontab
3.启动celerybeat,celery启动了一个beat进程一直在不断的判断是否有任务需要执行
使用django开发一个比较简单的post接口先把前置条件说一下
1.首先搭建好django环境win+r打开命令提示符pipinstalldjango
3.然后创建一个自己的
同样在命令提示符进入刚创建的工程所在路径输入pythonmanage.pystartxxx(这个指你要创建的名字),创新编辑器可以看到
4.正式开始开发一个post请求
首先设置好参数在seetings.py文件里如图修改
views.py
最后在templates文件夹下创建一个html文件简单地写一下前端
我这里直接贴自己写的login.html
code部分算是完成看一下效果
还可以进入fiddler查看验证,为了比较好查到我们先打开fiddler后输入用户名密码后fiddler上removeallsession
可以得到这么一条数据包
username,password的值也和我们输入的一致
到此完成一个简单的post请求开发
怎么在Django中向另外的ip发送Post请求一、需要用到的场景在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了。
二、需要用到的主要类在android中使用post请求主要要用到的类是HttpPost、HttpResponse、
如何在Django使用ajax的POSTDjango本身和ajax无关。
但是由于Django包含一套模板系统,你可以简单地将它理解为前端页面,在这些模板中,就像你作为一个前端工程师在html编写页面中,一样地使用ajax的POST方法。
Django可以在视图中,通过request.POST.get("xxx")的方法,接收ajax传过来的数据。
额外提醒,ajax的POST需要注意CSRF的安全问题,Django官方有现成的解决方案,到官方文档找到代码,贴到你的js中。
更多内容可以关注我的博客。
结语:以上就是首席CTO笔记为大家介绍的关于django如何实现异步post的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
怎么用php抓取天气预报?先说下思路,再举个例子。
具体方法
注:手机必须越狱,未越狱的朋友可以不用浪费时间了 这个软件和Barrel有冲突 用了这个就用不起3D翻页
1.在Cydia搜索HTC weather Animated 如果搜索不到 添加apt.modmyi这个源就可以了
2.安装HTC weather Animated会自动安装PerPageHTML 所以不用搜索perpageHTML了 注:不喜欢这个风格的朋友不要安装这个软件,
perpageHTML这个图标不容易删除,重新刷固件就没有了。
3.运行PerPage 选择最后一个HTCAniPPH, 点击后会看见Page 1-----Page11 这个就是插件在第几页显示 选择Page 1 就是在第一页桌面显示 想要每个页面显示
就全部点击 我选择的是Page 1 一个就可以了,PerPage主页面有个none 这个是取消的 想取消哪个页面的插件就选哪个 比如选择的天气插件是Page 1
想要取消 就选择 none 里的Page 1 就可以取消了 ,AnalogClock是时钟插件 Calendar是日历插件 喜欢的朋友也可以设置在桌面上 设置好后退出软件会自动重启 桌面上就有天气插件了 如果没有 自己重新启动一下手机就可以了
3.设置好后会看见程序图标把天气插件挡住了,这时就需要在Cydia下另外一个插件Gridlock 装好后桌面的图标就可以随意移动了,把挡住的图标
移开就可以了.
4.最后是汉化软件和设置城市了。自己修改城市代码替换就可以了。
汉化包中包含了三个文件“configureMe.js”“translation.js”“Widget.html”
右键用记事本打开第一个文件configureMe.js
找到var locale = "FRXX0028" 自己所在城市上网查询代码更改就可以
FRXX0028是佛山城市天气代码,(如:foshan,小城市请在城市名后加上,china)Widget.html和configureMe.js覆盖路径/Var/mobile/Library/PerPageHTML/HTCAniPPH/
translation.js覆盖路径/Var/mobile/Library/PerPageHTML/HTCAniPPH/Private
覆盖好文件后,注销下手机就可以看到你设置的城市的动画天气效果了。
经测试,基本不废流量和电量。
ASP用正则表达式如何取出HTML网页中TABLE中每一个单元格里的文字?
我昨天刚做了个,本来打算自己用,你既然问,就分享了吧!
PS:因为我是菏泽人,所以,如果你什么都不填,就显示菏泽天气。
如果想显示别的,直接输入就行,比如"香港",然后提交就OK了
://young.boustead.edu.cn/data/shunzi/tq.php
不知道是否合乎楼主的意愿(不用JS)
我用jascript熟,懒得翻译成vbscript了。一样可以用:
把下面代码,复制到你的asp页面中。注意runat=server,如果没有这个会被当作业务脚本来执行。不论你用vbs或js写asp,都可以通过 getWeatherStr函数获得到你想要的字符串。参数str就是你上面写的那个table的html代码。
<script language="jascript" runat=”server“>
function getWeatherStr(str)
{
var reg=/<td>([\w\W]+?)<\/td>/gi;
var a=str.match(reg);
var result="";
for(var i=0;i<a.length;i++)
{
result+="A"+(1+i)+"="+a[i].replace(reg,"$1")+"&";
}
result=result.substring(0,result.length-1);
return result;
}
</script>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。