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

本来是计划跟着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

$for movename in movies:

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

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

数据库传输过来了一定是一组对象。下面是服务器的显示。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 后面,变化的端口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值