先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)
本來(lái)是計(jì)劃跟著learn python the hard way ,繼續(xù)下去, 不過(guò)中途補(bǔ)充一下,網(wǎng)頁(yè)的基礎(chǔ)知識(shí)吧,也不耽擱了。
[摘錄]:用來(lái)記下,之前不理解的 地方?
1.web.py ?引入數(shù)據(jù)庫(kù)的路徑問(wèn)題。 ? --已解決
2、index.html調(diào)用參數(shù),數(shù)據(jù)庫(kù)中,怎么調(diào)用? ? --已解決
數(shù)據(jù)庫(kù)的學(xué)習(xí)
只是知道一些數(shù)據(jù)庫(kù)的知識(shí), 一步步來(lái)吧,實(shí)戰(zhàn)中學(xué)習(xí)呢。
為什么要學(xué)數(shù)據(jù)庫(kù)?
上節(jié)中我們調(diào)用了move字典,但是如果我們是個(gè)網(wǎng)站,這些數(shù)據(jù),如果只是字典的話,恐怕沒(méi)法吧, 下面我們就要用數(shù)據(jù)庫(kù)實(shí)現(xiàn)上篇的例子。
為什么要學(xué)習(xí)?
是不是又要多學(xué)東西呢? ? 呵呵,世界就是這樣的,一句learn python the ?hard way的話,
不管是什么原因,你一定要堅(jiān)持下去,放棄的話,你會(huì)失去達(dá)到這個(gè)程度的機(jī)會(huì)。
SQLlite3的學(xué)習(xí)
(1)是不是從基礎(chǔ)再學(xué)習(xí), 還是先簡(jiǎn)單的解決。
(2)不如看看我們要解決的問(wèn)題是什么?
解決上一課的問(wèn)題,那需要很復(fù)雜嗎? 不需要
那就簡(jiǎn)單的解決, 以后如果在遇到,在回頭學(xué)啊。主力是解決python.
SQLite3的基礎(chǔ)
sqlite3的基礎(chǔ)是sql結(jié)構(gòu)數(shù)據(jù)庫(kù),大致百度一下,看了看,不屬于sql服務(wù)器,至于細(xì)節(jié)目前我們暫時(shí)擱置, 先看看SQL數(shù)據(jù)庫(kù)的知識(shí),還是老地方w3school
什么是數(shù)據(jù)庫(kù)?
這個(gè)電子表格,名字叫 python2015web, 表1叫電影庫(kù),表2叫讀者庫(kù), ? ? ? ? ? ? ? ? ? ? ? ? ? 對(duì)應(yīng)sql, python2015web就是數(shù)據(jù)庫(kù), 電影庫(kù)就是數(shù)據(jù)庫(kù)表。
雖然上面是電子表格,但是數(shù)據(jù)庫(kù)表就是這個(gè)樣子的。
不同的是,電子表格,基本是你手填上去的,而這里大多數(shù)是用命令。
sql把命令分為兩種,一種是直接操作電子表格內(nèi),一種是建立表和文件名的。
操作電子表格的有:select 查詢數(shù)據(jù)庫(kù)并獲得數(shù)據(jù)。
update 更新數(shù)據(jù)庫(kù)的數(shù)據(jù)。
insert into : ?插入數(shù)據(jù)庫(kù)的數(shù)據(jù)
delete : 刪除數(shù)據(jù)庫(kù)的數(shù)據(jù)。
另一種:create ?database ? ,建立數(shù)據(jù)庫(kù)
alter ?database , ?修改數(shù)據(jù)庫(kù)
create ?table ?,建立數(shù)據(jù)庫(kù)表
alter ?table , 修改數(shù)據(jù)庫(kù)表
drop ?table , ?刪除數(shù)據(jù)庫(kù)
create index , 創(chuàng)建索引
drop ?index, ? 刪除索引
數(shù)據(jù)庫(kù)的一些小知識(shí):
1: ?select 列名, select * from table
2: ? sql 用單引號(hào)圍繞文本值,如果是數(shù)值,不用單引號(hào)。
3: ?where
有條件選取數(shù)據(jù)。
select * from 數(shù)據(jù)庫(kù)表 where 'city' = 'beijjing';
pyton中如何運(yùn)用
(1)首先在sqllite3 建立我們的數(shù)據(jù)庫(kù)。(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夢(mèng)','藤子F不二雄',2014,'日本');
sqlite> insert into move values(1,'海洋之歌','湯姆摩爾',2014,'法國(guó)');
sqlite> select * from move;
1|哆啦A夢(mèng)|藤子F不二雄|2014|日本
1|海洋之歌|湯姆摩爾|2014|法國(guó)
sqlite>.quit
是不是很簡(jiǎn)單啊。
(2)開(kāi)始數(shù)據(jù)庫(kù)制作網(wǎng)頁(yè)了。
修改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' , ? 發(fā)生錯(cuò)誤
應(yīng)該是數(shù)據(jù)庫(kù)路徑的問(wèn)題,復(fù)制到數(shù)據(jù)庫(kù)到web.py同級(jí)目錄下看看,并修改路徑。同時(shí)記下困惑python下的絕對(duì)路徑問(wèn)題。index.htm:
$def with (movies)
豆瓣movies
$movies
發(fā)現(xiàn)瀏覽器顯示:
數(shù)據(jù)是十六進(jìn)制,不對(duì)參數(shù)引用錯(cuò)誤。$def with (movies)
豆瓣movies
$movies['name']
繼續(xù)出現(xiàn)問(wèn)題,
IndexError
應(yīng)該是movies['name'], 回頭想想,錯(cuò)誤的原因就是不知道取movies參數(shù)的值。
改成問(wèn)題:$movies.name
一樣還是出現(xiàn)問(wèn)題。
exceptions.attributeError
累了,學(xué)習(xí)就是這樣的。。。 ? ?錯(cuò)誤不知道 出現(xiàn)在哪里?
修改一下了index.htm
$def with (movies)
豆瓣movies$def with (movies)
豆瓣movies
$for movename in movies:
$movename.name,$movename.year,$movename.nation
這個(gè)時(shí)候, 頁(yè)面顯示正常了, 由此可見(jiàn)了。
數(shù)據(jù)庫(kù)傳輸過(guò)來(lái)了一定是一組對(duì)象。下面是服務(wù)器的顯示。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
直接調(diào)用, select * ?from move
不過(guò),讓我有些感興趣的是 :127.0.0.1 后面,變化的端口。
總結(jié)
以上是生活随笔為你收集整理的先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python type instance
- 下一篇: python helloword_pyt