先学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 后面,變化的端口。
總結
以上是生活随笔為你收集整理的先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python type instance
- 下一篇: python helloword_pyt