美文网首页生活不易 我用python
跟着销售学python8-微信平台初次见识数据库(6)

跟着销售学python8-微信平台初次见识数据库(6)

作者: 日月山人 | 来源:发表于2015-05-12 00:35 被阅读343次

     本来是计划跟着learn python the hard way ,继续下去, 不过中途补充一下,网页的基础知识吧,也不耽搁了。

    [摘录]:用来记下,之前不理解的 地方?

      1.web.py  引入数据库的路径问题。   --已解决

     2、index.html调用参数,数据库中,怎么调用?   --已解决

    数据库的学习

      只是知道一些数据库的知识, 一步步来吧,实战中学习呢。

     为什么要学数据库?

        上节中我们调用了move字典,但是如果我们是个网站,这些数据,如果只是字典的话,恐怕没法吧, 下面我们就要用数据库实现上篇的例子。

     为什么要学习?

         是不是又要多学东西呢?   呵呵,世界就是这样的,一句learn python the  hard way的话,

    不管是什么原因,你一定要坚持下去,放弃的话,你会失去达到这个程度的机会。

    SQLlite3的学习

    (1)是不是从基础再学习, 还是先简单的解决。

    (2)不如看看我们要解决的问题是什么?

             解决上一课的问题,那需要很复杂吗? 不需要

            那就简单的解决, 以后如果在遇到,在回头学啊。主力是解决python. 

    SQLite3的基础

        sqlite3的基础是sql结构数据库,大致百度一下,看了看,不属于sql服务器,至于细节目前我们暂时搁置, 先看看SQL数据库的知识, 还是老地方w3school       

    什么是数据库?

         

    这个电子表格,名字叫 python2015web, 表1叫电影库,表2叫读者库,                           对应sql, python2015web就是数据库, 电影库就是数据库表。

       虽然上面是电子表格,但是数据库表就是这个样子的。

         不同的是,电子表格,基本是你手填上去的,而这里大多数是用命令。

       sql把命令分为两种,一种是直接操作电子表格内,一种是建立表和文件名的。

        操作电子表格的有:

           select 查询数据库并获得数据。

           update 更新数据库的数据。

           insert into :  插入数据库的数据

          delete : 删除数据库的数据。

      另一种:

           create  database   ,建立数据库

           alter  database ,  修改数据库

           create  table  ,建立数据库表

           alter  table , 修改数据库表

           drop  table ,  删除数据库

            create index , 创建索引

           drop  index,   删除索引 

     数据库的一些小知识:

    1:  select 列名, select * from table

    2:   sql 用单引号围绕文本值,如果是数值,不用单引号。

    3:  where 

            有条件选取数据。

          select * from 数据库表 where 'city' = 'beijjing';

    pyton中如何运用

     (1)首先在sqllite3 建立我们的数据库。

      (venv)lixiang gothonweb $ sqlite3 movesite.db

    SQLite version 3.8.5 2014-08-15 22:37:57

    Enter ".help" for usage hints.

    sqlite> create table move('id','name','author','year','nation');

    sqlite> select * from move;

    sqlite> insert into move values(1,'哆啦A梦','藤子F不二雄',2014,'日本');

    sqlite> insert into move values(1,'海洋之歌','汤姆摩尔',2014,'法国');

    sqlite> select * from move;

    1|哆啦A梦|藤子F不二雄|2014|日本

    1|海洋之歌|汤姆摩尔|2014|法国

    sqlite>.quit

        是不是很简单啊。

    (2)开始数据库制作网页了。

             修改web.py 文件

    importweb 

    urls = ('/','Index')

    db = web.database(dbn='sqlite',db='../movesite.db')

    app = web.application(urls,globals())

    render = web.template.render('templates/')

    class  Index:

    def GET(self):

    movies = db.select('move')

    return render.index(movies)

    if__name__ =='__main__':

    app.run()

    class 'sqlite3.OperationalError' ,   发生错误

      应该是数据库路径的问题,复制到数据库到web.py同级目录下看看,并修改路径。同时记下困惑python下的绝对路径问题。

    index.htm:

    $def with (movies)

    豆瓣movies

    $movies

    发现浏览器显示:

     数据是十六进制,不对参数引用错误。

    $def with (movies)

    豆瓣movies

    $movies['name']

       继续出现问题,

               IndexError 

      应该是movies['name'], 回头想想,错误的原因就是不知道取movies参数的值。

      改成问题:

      $movies.name

     一样还是出现问题。

    exceptions.attributeError

     累了,学习就是这样的。。。    错误不知道 出现在哪里?  

     修改一下了index.htm

    $def with (movies)

    豆瓣movies

    $def with (movies)

    豆瓣movies

    <ui>

     $for movename in movies:

    <li>

             $movename.name,$movename.year,$movename.nation  

    </li>

      这个时候, 页面显示正常了, 由此可见了。 

     数据库传输过来了一定是一组对象。下面是服务器的显示。

    http://0.0.0.0:8080/

    0.0 (1): SELECT * FROM move

    127.0.0.1:52985 - - [13/May/2015 13:27:34] "HTTP/1.1 GET /" - 200 OK

    0.0 (1): SELECT * FROM move

    127.0.0.1:52985 - - [13/May/2015 13:27:36] "HTTP/1.1 GET /" - 200 OK

    0.0 (1): SELECT * FROM move

    127.0.0.1:52985 - - [13/May/2015 13:27:38] "HTTP/1.1 GET /" - 200 OK

    0.0 (1): SELECT * FROM move

    127.0.0.1:52996 - - [13/May/2015 13:29:07] "HTTP/1.1 GET /" - 200 OK

    0.0 (1): SELECT * FROM move

    127.0.0.1:52999 - - [13/May/2015 13:29:33] "HTTP/1.1 GET /" - 200 OK

    0.0 (1): SELECT * FROM move

    127.0.0.1:52999 - - [13/May/2015 13:29:37] "HTTP/1.1 GET /" - 200 OK

    0.0 (1): SELECT * FROM move

    127.0.0.1:53002 - - [13/May/2015 13:29:54] "HTTP/1.1 GET /" - 200 OK

         直接调用, select *  from move

    不过,让我有些感兴趣的是 :127.0.0.1 后面,变化的端口。

    相关文章

      网友评论

        本文标题:跟着销售学python8-微信平台初次见识数据库(6)

        本文链接:https://www.haomeiwen.com/subject/hadfqttx.html