个人博客python
❶ 如何用django开发一个简易个人Blog-python
1.网站首页展示已发布的博客记录,包括名称、摘要信息、发布日期、阅读量及评论数。
2.首页文章列表可按照分类筛选。
3.点击标题或阅读全文链接,进入博客阅读页面,展示文章标题、内容及评论内容。
博客后台管理部分:(后台套用了一个叫做ACE的后台模板,改造成了django形式的)
1.管理员登录功能
2.分页展示文章列表,可查看、编辑、删除选中文章,并支持批量删除功能。
3.增加新文章功能,利用网络ueEditor富文本编辑器,支持代码高亮显示功能。
4.支持分类的增、删、改、查功能。
下面是几张截图:
首页文章显示:
开发环境及软件版本:
开发是在windows 7,利用sublime text2编辑器。
采用python2.7.3+django1.7.0+mysql
前端采用bootstrap和一些成熟的jquery插件。
开发过程:
1.创建项目及app,规划项目结构。
2.设计数据模型,即数据库表及表结构。
3.设计公共展示部分样式,及后台数据与模板视图的展示。
4.改造ACE后台模板,添加文章管理、类别管理功能及登录验证功能。
5.部署到CentOS6.5,部署方式:nginx+uwsgi+django1.6+mysql
❷ 用python 写一个个人博客要多久
那得会python写逻辑
然后得有个django框架
然后博客的数据得存在数据库吧,可以使用django自带的数据库。
好的后段准备好了,现在准备前段。
html写个网站,查询功能,登录功能,评价功能。
然后css写个布局,让看上去好看点。
ok基本差不多了。
❸ 怎么利用python爬取csdn博客访问量例子
一、网址分析
进入自己的博客页面,网址为:http://blog.csdn.net/xingjiarong 网址还是非常清晰的就是csdn的网址+个人csdn登录账号,我们来看一下下一页的网址。
看到第二页的地址为:http://blog.csdn.net/xingjiarong/article/list/2
后边的数字表示现在正处于第几页,再用其他的页面验证一下,确实是这样的,那么第一页为什么不是http://blog.csdn.net
/xingjiarong/article/list/1呢,那么我们在浏览器中输入http://blog.csdn.net/xingjiarong
/article/list/1试试,哎,果然是第一页啊,其实第一页是被重定向了,http://blog.csdn.net/xingjiarong
被重定向到http://blog.csdn.net/xingjiarong/article/list/1,所以两个网址都能访问第一页,那么现在规
律就非常明显了:
http://blog.csdn.net/xingjiarong/article/list/ + 页号
二、如何获取标题
右键查看网页的源代码,我们看到可以找到这样一段代码:
我们可以看到标题都是在标签
<span class="link_title"><a href="/xingjiarong/article/details/50651235">
所以我们可以使用下面的正则表达式来匹配标题:
<span class="link_title"><a href=".*?">(.*?)</a></span>
三、如何获取访问量
拿到了标题之后,就要获得对应的访问量了,经过对源码的分析,我看到访问量的结构都是这样的:
<span class="link_view" title="阅读次数"> <a href="/xingjiarong/article/details/50651235" title="阅读次数">阅读</a>(1140)</span>
括号中的数字即为访问量,我们可以用下面的正则表达式来匹配:
<span class="link_view".*?><a href=".*?" title="阅读次数">阅读</a>\((.*?)\)</span>
四、如何判断是否为尾页
接下来我们要判断当前页是否为最后一页,否则我们就不能判断什么时候结束了,我找到了源码中‘尾页'的标签,发现是下面的结构:
<a href="/xingjiarong/article/list/2">下一页</a> <a href="/xingjiarong/article/list/7">尾页</a>
所以我们可以用下面的正则表达式来匹配,如果匹配成功就说明当前页不是最后一页,否则当前页就是最后一页。
<a href=".*?">尾页</a>
五、编程实现
下面是完整的代码实现:
#!usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on 2016年2月13日
@author: xingjiarong
使用python爬取csdn个人博客的访问量,主要用来练手
'''
import urllib2
import re
#当前的博客列表页号
page_num = 1
#不是最后列表的一页
notLast = 1
account = str(raw_input('输入csdn的登录账号:'))
while notLast:
#首页地址
baseUrl = 'http://blog.csdn.net/'+account
#连接页号,组成爬取的页面网址
myUrl = baseUrl+'/article/list/'+str(page_num)
#伪装成浏览器访问,直接访问的话csdn会拒绝
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent':user_agent}
#构造请求
req = urllib2.Request(myUrl,headers=headers)
#访问页面
myResponse = urllib2.urlopen(req)
myPage = myResponse.read()
#在页面中查找是否存在‘尾页'这一个标签来判断是否为最后一页
notLast = re.findall('<a href=".*?">尾页</a>',myPage,re.S)
print '-----------------------------第%d页---------------------------------' % (page_num,)
#利用正则表达式来获取博客的标题
title = re.findall('<span class="link_title"><a href=".*?">(.*?)</a></span>',myPage,re.S)
titleList=[]
for items in title:
titleList.append(str(items).lstrip().rstrip())
#利用正则表达式获取博客的访问量
view = re.findall('<span class="link_view".*?><a href=".*?" title="阅读次数">阅读</a>\((.*?)\)</span>',myPage,re.S)
viewList=[]
for items in view:
viewList.append(str(items).lstrip().rstrip())
#将结果输出
for n in range(len(titleList)):
print '访问量:%s 标题:%s' % (viewList[n].zfill(4),titleList[n])
#页号加1
page_num = page_num + 1
❹ python中xrange和range的异同 CiNiao's blog
range返回的是一个包含所有元素的列表,xrange返回的是一个生成器,生成器是一个可迭代对象,在对生成器进行迭代时,元素是逐个被创建的。一般来看,在对大序列进行迭代的时候,因为xrange的特性,所以它会比较节约内存。
我们来仔细看看这两者的不同:
>>> Range = range(10)
>>> xRange = xrange(10)
>>> type(Range)
>>> type(xRange)
这里就是很明显的类型上的不同了,range直接生成一个列表,xrange生成的是一个xrange对象
另外一个很明显的区别在与xrange不支持列表切片
>>> xRange[:1]
Traceback (most recent call last):
File "", line 1, in
xRange[:1]
TypeError: sequence index must be integer, not 'slice'
在其它场合,我觉得xrange完全可以取代range,这样你可以无需担心列表长度的问题。
另外,xange也和普通的生成器略有不同,对于同一个xrange对象,对它进行多次迭代,每次都会从头开始,这里我自己也试了一下
首先写个常规生成器
>>> def test(x):
for y in x:
yield y
>>> t = test(range(10))
>>> t.next()
0
>>> t.next()
1
>>> t.next()
2
>>>list(t)
[3, 4, 5, 6, 7, 8, 9]
可以看到元素被生成出来之后就从生成器中剔除了,但是xrange有所不同
>>> xRange = xrange(10)
>>> for x in xRange:
print x
break
0
>>> for x in xRange:
print x
break
0
迭代两次,每次都是从第一个元素开始....
❺ linux下怎么用python搭建自己的博客
运行python终端的话 直接输入python
也可以加参数运行,这就比windows下面方便一些。
你的py程序可以不以“.py”结尾,linux系统不是通过扩展名来判断文件格式的。py脚本对于linux系统来说就是文本文件。
编写程序的时候有一点和windows下不一样。第一行要加上“#! /usr/python"这样一行注释,虽然是注释,但是linux系统的终端会解读它并识别出来是个python脚本。然后这个文件要加上可运行权限,用命令“chmod +x 文件名",这样这个文件就可以被运行了。
然后在linux终端中直接输入"./程序名"即可运行,终端会自动识别出来是个python程序并用python解释器来运行。".”指的是当前目录,linux默认设置的是要运行当前目录的程序必须重新指定以下目录,所以要加上"./"。
如果要用python3的话,python 3 在大部分发行版里面叫做"python3"。
在Archlinux里面“python"指的是第三代,而”python2”表示的是python第二代。
❻ Python 有哪些好的学习资料或者博客
1、无开发经验,初学python
如果你不会其他语言,python是你的第一门语言:
A Byte of Python (简明python教程,这个有中文版简明 Python 教程)是非常好的入门教程。
Learn Python the Hard Way (Zed Shaw的免费教程,个人强烈推荐)
Python, Django and Flask教程: Real Python (收费,需购买)
short 5 minute video 解释了为什么你的出发点应该是要完成什么项目,或者解决什么问题,而不是为了学一门语言而去学一门语言。
Dive into Python 3 是一本开源的python教程,提供HTML和PDF版。
Code Academy 有一个为纯新手准备的 Python track 。
Introction to Programming with Python 介绍了基本语法和控制结构等,提供了大量代码示例。
O'Reilly 的书 Think Python: How to Think Like a Computer Scientist 是非常好的入门教材。
Python Practice Book 是一本python练习的书,帮你掌握python基本语法。
想通过做实际项目来学编程?看看这个 this list of 5 programming project for Python beginners(5个适合python初学者的编程项目)。
Reddit的创造者之一写了一个教程,如何用python构建一个博客网站(use Python to build a blog.),使非常好的web编程入门。
The fullstack python的作者写了一篇关于如何学习python的文章learning Python 。
2、有开发经验 ,初学Python
Learn Python in y minutes ,让你在几分钟内快速上手,有个大概了解。
Python for you and me , python的语法,语言的主要结构等,还包含来Flask Web App的教程。
The Hitchhiker’s Guide to Python
How to Develop Quality Python Code ,如何开发高质量的python代码