django views视图

视图函数简称视图,本质上是一个简单的python函数,它接受web请求并且返回web响应;响应的内容可以是HTML网页、重定向、404错误、XML文档或图像等任何东西,但是,无论视图本身是个什么处理逻辑,最好都返回某种响应视图函数的代码写在哪都无所谓,只要它在你的python目录下面,但是通常我们约定将视图放置在项目或应用程序目录中的名为views.py的文件中。1、一个简单的视图下面是一个返回当前日期和时间作为HTML文档的视图:fromdjango.httpimportHttpResponseimportdatetimedefcurrent_datetime(request):now=datetime.datetime.now()html="<html><body>Itisnow%s.</body></html>"%nowreturnHttpResponse(html)让我们逐行分析一下上面的代码:首先,从django.http模块导入了HttpResponse类,以及python的datetime库接着,我们定义了current_d...
ymnets ymnets·2020-03-25

爬虫入门【11】Pyspider框架入门—使用HTML和CSS选择器下载小说

首先我们要安装好pyspider,可以参考上一篇文章。从一个web页面抓取信息的过程包括:1、找到页面上包含的URL信息,这个url包含我们想要的信息2、通过HTTP来获取页面内容3、从HTML中提取出信息来4、然后找到更多的URL,回到第2步继续执行~我推荐一部小说给大家《恶魔法则》。今天我们从网上将这部小说的内容按照章节下载下来。小说目录的url为https://www.ybdu.com/xiaoshuo/4/4646/我们现在控制台命令行中输入pyspiderall,命令,然后打开浏览器,输入http://localhost:5000/。点击右面的Create按钮,输入项目名称,点击创建即可。【插入图片,创建项目】创建项目之后,在浏览器出现一个框架,左面是结果显示区,最主要的是一个run命令。右面是我们输入代码的内容。由于这个代码编辑界面不太友好,建议我们将代码拷贝到pycharm中,编辑好或者修改好之后再复制回来运行。【插入图片,空白项目内容】我们如果访问https页面,一定要添加validate_cert=False,否则会报SSL错误。这一步主要是获取目录页。这个方法会获取...

爬虫入门【10】Pyspider框架简介及安装说明

Pyspider是python中的一个很流行的爬虫框架系统,它具有的特点如下:1、可以在Python环境下写脚本2、具有WebUI,脚本编辑器,并且有项目管理和任务监视器以及结果查看。3、支持多种数据库4、支持定义任务优先级,自动重试链接。。。5、分布式架构等等优点。pyspider的设计基础是:以python脚本驱动的抓取环模型爬虫。教程:http://docs.pyspider.org/en/latest/tutorial/文档:http://docs.pyspider.org/发布版本:https://github.com/binux/pyspider/releasesfrompyspider.libs.base_handlerimport*classHandler(BaseHandler):crawl_config={}@every(minutes=24*60)defon_start(self):self.crawl('http://scrapy.org/',callback=self.index_page)@config(age=10*24*60*60)defindex_pa...

爬虫实战【10】利用Selenium自动登陆京东签到领金币

今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币。我们先来看一下京东的登陆页面,如下图所示:【插入图片,登陆页面】登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个、密码的形式登陆,就要切换一下。我们看一下这两种登陆方式是如何切换的,通过浏览器的元素检查,我们看一下两个标签。【插入图片,两种登陆方式】扫码登陆和用户登陆分别在一个div标签里面,我们可以通过css选择器选定用户登陆,使其下面的a标签的class为checked,接下来的一切就比较简单了。我们要获取到用户名输入框、密码输入框以及登陆按钮即可。【插入图片,用户登陆框】下面看一下实现的代码,假设我们通过FireFox浏览器模拟登陆吧。fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpecte...

爬虫实战【9】Selenium解析淘宝宝贝-获取宝贝信息并保存

通过昨天的分析,我们已经能到依次打开多个页面了,接下来就是获取每个页面上宝贝的信息了。【插入图片,宝贝信息各项内容】从图片上看,每个宝贝有如下信息;price,title,url,dealamount,shop,location等6个信息,其中url表示宝贝的地址。我们通过查看器分析,每个宝贝都在一个div里面,这个div的class属性包含item。而所有的item都在一个div内,这个总的div具有class属性为items,也就是单个页面上包含所有宝贝的一个框架。因而,只有当这个div已经加载了,才能够断定页面的宝贝信息是可以提取的,所以再提取信息之前,我们要判断这个div的存在。对于网页源码的解析,这次我们使用Pyquery,轮换着用一下嘛,感觉还是PyQuery比较好用,尤其是pyquery搜索到的对象还能在此进行搜索,很方便。Pyquery的使用方法请查看我之前的文章,或者看一下API。下面我们依次来分析一下每项信息应该如何提取。1、Price【插入图片,price】可以看出,price的信息在一个div里面,具有clas属性price,我们如果通过text来获取的话,还会...

爬虫实战【8】Selenium解析淘宝宝贝-获取多个页面

作为全民购物网站的淘宝是在学习爬虫过程中不可避免要打交道的一个网站,而是淘宝上的数据真的很多,只要我们指定关键字,将会出现成千上万条数据。今天我们来讲一下如何从淘宝上获取某一类宝贝的信息,比如今天我们以“手机”作为关键词,举个例子。【插入图片,淘宝手机页面示意】上面是搜索框,下面显示了很多宝贝信息,最下面是翻页的控制按钮。【插入图片,淘宝手机页面源代码】我们看一下这个页面的源代码,发现都是一些js,还提示了要运行脚本才能显示。难道宝贝也是Ajax加载的?我们来找一下有没有数据信息。【插入图片,XHR中什么都没有】可惜XHR打开之后,发现并没有加载任何数据。遇到这种情况,我们可以选择通过Selenium模仿浏览器访问,这样能够加载到所有的内容,虽然比直接访问数据慢一些,但基本上什么网页都能爬到。我们先分析一下流程。一上来,我们要打开淘宝的首页,在搜索框中输入关键字,然后点击搜索按钮。【插入图片,主页内容解析】有两个元素是我们要获取到的,一个是搜索框,一个是搜索按钮。在Selenium中得到元素的方法,请回顾一下我之前写的入门文章,或者查看Selenium的API文档,不是很负责。在本文中...

爬虫入门【7】Python-文件的读写和JSON

最重要的open()方法将返回一个file对象,经常使用的两个参数为open(filename,mode)其中,filename为file保存的地址,可以是本地地址,相对地址或者绝对地址。mode对象为对file对象进行的操作'''对这个方法进行一些解释open(file,mode='r',buffering=None,encoding=None,errors=None,newline=None,closefd=True)file就是要操作的文件的地址,这个文件如果不存在,会创建;如果存在会打开;mode参数:r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。w+打开一个文件用于读写。如果该文...

爬虫入门【6】Selenium用法简介

一句话,自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器。如果你在这些浏览器里面安装一个Selenium的插件,那么便可以方便地实现Web界面的测试。换句话说叫Selenium支持这些浏览器驱动。我们在Python里面安装Selenium的话,就可以调用浏览器来访问web界面了。Selenium调用web需要由对应的浏览器驱动来支持。首先要确认自己的系统版本,我安装的是win10,在系统设置里面查询一下自己的版本号。本来想下载Chrome或者FireFox的驱动,但是Selenium的官网点进去想下载都困难。。。。----------------------------我是华丽的分割线--------------------------------------------------------突然又下好了,地址为http://www.seleniumhq.org/download/,Chrome和Firefox的。但是由于WebDriver的版本问题,打开还是有些困难,回头再弄把。。先用Edge。-------------------...

爬虫入门【3】BeautifulSoup4用法简介

首先创建一个我们需要解析的html文档,这里采用官方文档里面的内容:html_doc="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"><b>TheDormouse'sstory</b></p><pclass="story">Onceuponatimetherewerethreelittlesisters;andtheirnameswere<ahref="http://example.com/elsie"class="sister"id="link1">Elsie</a>,<ahref="http://example.com/lacie"class="sister&q...

爬虫入门【2】Requests库简介

使用Requests发送网络请求很简单#首先要导入requests库importrequests#返回一个Response对象r=requests.get('https://github.com/timeline.json')#由此可以看出来Requests的API十分简单,#post请求r=requests.post('http://httpbin.org/post')#Put请求,delete请求,head请求,options请求r=requests.put('http://httpbin.org/put')一般的get传递参数方法是将数据与url地址用?连起来。Requests库允许使用params关键字参数,以一个dict来提供这些参数。importrequestspayload={'key1':'value1','key2':'value2'}r=requests.get('http://httpbin.org/get',params=payload)print(r.url)#可以看出response对象由url属性http://httpbin.org/get?key1=va...

爬虫入门【1】urllib.request库用法简介

如何使用urllib库获取网络资料打开指定的URLurllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)url参数,可以是一个string,或者一个Request对象。data一定是bytes对象,传递给服务器的数据,或者为None。目前只有HTTPrequests会使用data,提供data时会是一个post请求,如若没有data,那就是get请求。data在使用前需要使用urllib.parse.urlencode()函数转换成流数据。fromurllibimportrequestresp=request.urlopen('http://www.baidu.com')print(type(resp))#可以看出,urlopen返回的是一个HTTPResponse对象<class'http.client.HTTPResponse'>print(dir(resp))#resp具有的方法和属性如下,我们最常用的是read和rea...

Pandas入门

主要包含两个数据结构,Series和DataFrameSeries类似于一维数组,有数据和索引。默认创建整数型索引。可以通过values和index获取数据和索引。frompandasimportSeries,DataFrameimportpandasaspdimportnumpyasnpobj=Series([4,7,-5,3])obj04172-533dtype:int64如果想要自定义索引,举例如下,index就是一个列表:obj2=Series([4,7,-5,3],index=['b','d','a','c'])obj2b4d7a-5c3dtype:int64通过索引选择Series中单个或者一组值,输入的参数是一个索引或者一个索引的listobj2[['a','b','c']]a-5b4c3dtype:int64Series类似与一个Dict,索引和数据之间存在映射关系。可以直接使用Dict创建一个Series。'b'inobj2Truesdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}obj3=Ser...
ymnets ymnets·2020-03-25

HTML使用post方式提交中文内容出现乱码的错误解决方式

 今天在做一个例子的时候,使用post方式提交表单,如果有中文的话,在另一个页面显示出来的时候,总是会出现乱码;但是将提交方式改为get的时候,就不会出现这种错误。详细错误见下面图片和代码。HTML代码:1<!DOCTYPEhtml>2<html>3<head>4<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">5<title>测试Cookie的设置和获取</title>6</head>7<body>8<formaction="/TestTomcat/SetCookie"method="post">9站点名:<inputtype="text"name="name"><br>10站点URL:<inputtype="text"name="url"><br>11<inputtype="submit"value="提交"/>12</fo...

Python PhatomJS 和Selenium动态加载页面 获取图片内容

如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python![](http://www.51dev.com//FileUpload/news/202003/20200325002543449.jpg)随笔中的代码拷贝自http://www.cnblogs.com/Albert-Lee/p/6275146.html感谢阿里波特,通过学习自己做了一些注释,作为总结和记录。 1fromseleniumimportwebdriver2importrequests3frombs4importBeautifulSoup4importos5importtime6#定义函数时,尽量写上默认参数,字符='',数字=0,特殊对象也要定义默认值,这样就可以简单的通过.来得到参数具有的性质等。7classBeautifulPicture():8def__init__(self):9#给请求指定一个请求头来模拟chrome浏览器10self.headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.1(KHTM...

C#基础——winform应用上传图片到SQLServer数据库

前言之前通过winform与SQLServer的交互一直局限于文本、数字等信息,都可以通过string的方式来传输,但是比如音乐、图片等特殊格式的文件要如何与SQLServer数据库进行交互呢?今天主要讲通过文件流的方式,将特殊文件转换成二进制,然后存储到数据库中。在实际的应用中,如果文件较大或者较多,直接存储在数据中会造成一定的压力,可以转为保存文件名,然后在实际使用的地方调用改文件名对应的文件。主要内容上图为图片上传winform的内容。1、选择图片按钮,功能为通过对话框选择要上传的文件,并将该文件在下面的pictureBox中显示出来。具体代码如下:privatevoidbtn_Choose_Click(objectsender,EventArgse){UserMethod.ShowPic(this.pictureBox1);}1publicstaticvoidShowPic(PictureBoxpicBox)2{3OpenFileDialogofd=newOpenFileDialog();4ofd.InitialDirectory=@"E:";5ofd.Filter="Imag...
首页上一页...47904791479247934794...下一页尾页