欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Study Pylons Two PylonsSQLiteMySQLCacheGoogle 

程序员文章站 2022-07-15 13:16:44
...

1. paster create --template=pylons minispider
2. MySQL,建立数据库minispider

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  CREATE   TABLE  minispider.titleinfo
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  ( id 
INTEGER  UNSIGNED  NOT   NULL  AUTO_INCREMENT,
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    link 
VARCHAR ( 255 NOT   NULL   DEFAULT   '' ,
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    description 
VARCHAR ( 255 NOT   NULL   DEFAULT   '' ,
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    sitename 
VARCHAR ( 255 NOT   NULL   DEFAULT   '' ,
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    updatetime 
TIMESTAMP   NOT   NULL   DEFAULT   0 ,
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
PRIMARY   KEY (id)
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  )


3. The Model
1) 修改development.ini,代码如下:

 1 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
 2 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  minispider - Pylons development environment configuration
 3 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
 4 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  The %(here)s variable will be replaced with the parent directory of this file
 5 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
 6 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  [DEFAULT]
 7 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  debug  =  true
 8 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  email_to  =  you@yourdomain.com
 9 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  smtp_server  =  localhost
10 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  error_email_from  =  paste@localhost
11 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
12 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  [server:main]
13 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  use  =  egg:Paste # http
14 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  host  =   0.0 . 0.0
15 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  port  =   5000
16 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
17 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  [app:main]
18 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  use  =  egg:minispider
19 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  cache_dir  =   % (here)s / data
20 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  session_key  =  minispider
21 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  session_secret  =  somesecret
22 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
23 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  If you'd like to fine-tune the individual locations of the cache data dirs
24 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  for Myghty, the Cache data, or the Session saves, un-comment the desired
25 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  settings here:
26 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  # myghty_data_dir = %(here)s/data/templates
27 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  # cache_data_dir = %(here)s/data/cache
28 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  # session_data_dir = %(here)s/data/sessions
29 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
30 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  Specify the database for SQLObject to use via pylons.database.PackageHub.
31 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  %(here) may include a ':' character on Windows environments; this can
32 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  invalidate the URI when specifying a SQLite db via path name. Refer to the
33 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  SQLObject documentation for a special syntax to preserve the URI.
34 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  # sqlobject.dburi = sqlite:%(here)s/somedb.db
35 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  sqlobject.dburi  =  mysql: // root: 123456 @localhost: 3306 / minispider
36 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
37 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
38 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  Debug mode will enable the interactive debugging tool, allowing ANYONE to
39 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #  execute malicious code after an exception is raised.
40 Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  # set debug = false

第35行为添加的部分。
2)在models目录下,建立msmodel.py,代码如下:

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  from  sqlobject  import   *
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
from  pylons.database  import  PackageHub
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  hub 
=  PackageHub( " minispider " )
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
__connection__   =  hub
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
class  titleinfo(SQLObject):
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      link 
=  StringCol(length = 255 )
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      description 
=  StringCol(length = 255 )
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      sitename 
=  StringCol(length = 255 )
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      updatetime 
=  DateTimeCol()

修改__init__.py,代码如下:

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  # # NOTE
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
#   If you plan on using SQLObject, the following should be un-commented and provides
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
#   a starting point for setting up your schema
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
# from sqlobject import *
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
from pylons.database import PackageHub
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
hub = PackageHub("minispider")
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
__connection__ = hub
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
#  You should then import your SQLObject classes
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  #
 from myclass import MyDataClass
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
from  msmodel  import  titleinfo


4.The view
在templates文件夹下建立ms文件夹,在ms文件中建立list.myt,代码如下:

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  < html >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
< head >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
< title > Generated by Mini Spider v0. 1 </ title >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
</ head >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
< body >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
< table width = " 80% "   border = " 0 " >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
< tr >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
< td width = " 60% " >< strong > What </ strong ></ td >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
< td width = " 20% " >< strong > Where </ strong ></ td >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
< td width = " 20% " >< strong > When </ strong ></ td >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
</ tr >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
%   for  ti  in  c.titleinfo:
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
< tr >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
< td >< a href = " <% ti.link %> "  target = " _blank " ><%  ti.description  %></ a ></ td >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
< td ><%  ti.sitename  %></ td >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
< td ><%  ti.updatetime  %></ td >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
</ tr >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
%   # endfor
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
</ table >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
</ body >
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
</ html >

务必注意代码的缩进!浪费了偶半个多小时!

5.The controller
命令行运行:
cd minispider
paster controller ms
将controllers文件夹下ms.py修改,代码如下:

Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle  from  minispider.lib.base  import   *
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle 
class  MsController(BaseController):
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle          
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    template_prefix 
=   ' /ms '
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle          
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
def  index(self):
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      redirect_to(action
= ' list ' )
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle          
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle    
def  list(self):
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      c.titleinfo 
=  list(model.titleinfo.select())
Study Pylons Two
            
    
    
        PylonsSQLiteMySQLCacheGoogle      
return  render_response(self.template_prefix  +   ' /list.myt ' )


6. run
命令行运行:
paster serve --reload development.ini
ok,访问:http://127.0.0.1:5000/ms
结果类似:

What Where When
Baidu Baidu 2006-12-05 22:18:12
Google Google 2006-12-05 22:18:42


初试,功能之强大,操作之简便,初见端倪。