<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                前面都是前端的一些內容,但是要想做出一個能用的東西,始終是不能脫離后端的。因此這一節主要介紹如何使用python的一個web框架webpy。我想讀我這個教程的同學大多都是前端,對后端沒有什么感覺。因此關于后端的介紹以能用為主,不涉及太多的后端的東西。 ## 9.1 python是什么 簡單來說Python和JavaScript一樣,是一個動態語言,運行在服務器端。語法類似于程序偽碼,或者說類似于自然語言。過多的語法和關鍵字就不再介紹。只需要記住Python是用縮進來判斷語法塊的,不像js用大括號。 ## 9.2 webpy是什么 和Backbonejs是js的一個框架一樣,webpy是python的一個簡單的web開發的框架。可以通過簡單的幾行代碼啟動一個web服務(雖然只是輸出helloworld ^_^)。用它可以簡單的滿足咱們的開發需求。 因為是基于Python的框架,因此需要先安裝Python環境,具體怎么裝就不細說了,到[http://python.org/download/](http://python.org/download/)?安裝python2.7.6這個版本。 之后按照?[webpy](http://webpy.org/)?官網的說明,通過命令安裝webpy: ~~~ pip install web.py 或者 easy_install web.py 注意:linux下非root用戶需要sudo ~~~ ## 9.3 來一個Helloworld 安裝好之后,直接把webpy網站上的那段代碼,貼到的用編輯器打開的文件中,保存為server.py。webpy網站代碼如下: ~~~ import web urls = ( '/', 'index' ) app = web.application(urls, globals()) class index: def GET(self): return 'Hello, World!' if __name__ == "__main__": app.run() ~~~ 然后在server.py的同目錄下執行: ~~~ python server.py ~~~ 之后命令行會輸出: ~~~ http://0.0.0.0:8080/ ~~~ 這個提示,現在你在瀏覽器訪問?[http://127.0.0.1:8080](http://127.0.0.1:8080/)?,就會看到熟悉的helloworld,是不是超級簡單。 ## .4 簡單構建api接口 在上面代碼的基礎上,按照前面backboneModel的定義,我們需要一個todo這模型的對應的鏈接,這個鏈接應該返回json格式的數據。并且能夠支持post、put、get、delete這四個請求。現在來看接口部分的代碼: ~~~ #添加todo相關的urls urls = ( '/', 'index', #返回首頁 # 處理前端todo的請求,操作對應的todo '/todo/(\d+)/', 'todo', # 處理前端todo的整體請求,主要是獲取所有的todo數據 '/todo/', 'todos', ) ~~~ ~~~ #添加接口的處理代碼 class todo: def GET(self, todo_id=None): context = { "title": "下午3點,coding", "order": 0, "done": False, } return json.dumps(context) #處理整體的請求 class todos: def GET(self): result = [] result.append({ "title": "下午3點,coding", "order": 0, "done": False, }) return json.dumps(result) ~~~ 添加完這部分代碼之后,啟動server.py。訪問?[http://localhost:8080/todo/](http://localhost:8080/todo/)?就能看到數據了,這里只是實現了get方法,其他的方法在下一篇中介紹。 ## 9.5 加入數據庫sqlite 關于數據存儲部分,我們使用sqlite數據庫。sqlite的好處就是不需要安裝即可使用。這樣可以省去在數據庫安裝方面的折騰。 sqlite的介紹就不多說了,感興趣的同學想必已經在查sqlite相關的東西了。這里只是演示在webpy中如何操作sqlite。 具體依然看代碼: ~~~ #使用sqlite3操作數據庫 import sqlite3 conn = sqlite3.connect('todos.db') #把todo改為這樣: class todo: def GET(self, todo_id=None): cur = conn.cursor() cur.execute(sql_query + ' where id=?', (todo_id, )) todo = cur.fetchone() cur.close() # 先用這種比較傻的方式 context = { "id": todo[0], "title": todo[1], "order": todo[2], "done": todo[3], } return json.dumps(context) class todos: def GET(self): result = [] cur = conn.cursor() cur.execute(sql_query) todos = cur.fetchall() cur.close() for todo in todos: result.append({ "id": todo[0], "title": todo[1], "order": todo[2], "done": todo[3], }) return json.dumps(result) ~~~ 完整代碼可以在 code 文件夾找到。使用時,先運行init_sqlite.py這個文件,會幫你創建一個sqlite的數據庫,并且插入一條數據,然后運行server.py就可以在瀏覽器訪問?[http://localhost:8080/todo/](http://localhost:8080/todo/)?或者http://localhost:8080/todo/1/ 看到輸出數據了。 ## 9.6 總結 這里打算用webpy+sqlite來完成后臺主要是想到這個東西比Django+Mysql那一套搭建起來比較容易。有興趣看Django后臺搭建的可以看這篇文章:?[django開發環境搭建及使用](http://www.the5fire.com/10-django-dev-env.html)?。 這里沒有使用webpy自帶的db模塊進行數據的操作,主要是文檔和案例都不全,并且源碼看起來挺繞。用Python自帶的模塊顯然操作起來有點笨拙,之后會對這個數據操作部分進行簡單的封裝。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看