日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Web开发】Python实现Web服务器(web2py)

發布時間:2024/1/1 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Web开发】Python实现Web服务器(web2py) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

🍺基于Python的Web服務器系列相關文章編寫如下🍺:

  • 🎈【Web開發】Python實現Web服務器(Flask快速入門)🎈
  • 🎈【Web開發】Python實現Web服務器(Flask案例測試)🎈
  • 🎈【Web開發】Python實現Web服務器(Flask部署上線)🎈
  • 🎈【Web開發】Python實現Web服務器(Tornado入門)🎈
  • 🎈【Web開發】Python實現Web服務器(Tornado+flask+nginx)🎈
  • 🎈【Web開發】Python實現Web服務器(FastAPI)🎈
  • 🎈【Web開發】Python實現Web服務器(Bottle)🎈
  • 🎈【Web開發】Python實現Web服務器(Django)🎈
  • 🎈【Web開發】Python實現Web服務器(web2py)🎈
  • 🎈【Web開發】Python實現Web服務器(Sanic)🎈
  • 文章目錄

    • 1、簡介
    • 2、下載和安裝
    • 3、快速入門
    • 4、示例測試
      • 4.1 Say hello
      • 4.2 Let's count
      • 4.3 Say my name
      • 4.4 Postbacks
      • 4.5 An image blog
    • 5、PythonAnywhere
    • 結語

    1、簡介

    官方地址:
    http://www.web2py.com

    免費開源全??蚣?#xff0c;快速開發,可擴展,安全和可移植數據庫驅動的基于 Web 的應用程序。編寫和編程 Python (版本 3 和 2.7)。

    web2py是一種免費的、開源的web開發框架,用于敏捷地開發安全的、數據庫驅動的web應用;web2py采用Python語言編寫,并且可以使用Python編程。web2py是一個完整的堆棧框架,也就是說它包含了開發完整功能的web應用所需的所有組件。

    web2py支持CPython(C語言實現)或Jython(Java語言實現)。

    開發web應用的兩個經典方法是:

    • 通過編程生成HTML代碼。
      早期的CGI腳本遵循第一種模型。
    • 將代碼嵌入HTML頁面中。
      下列腳本遵循第二種模型,例如PHP[php](代碼用PHP編寫,類似C語言)、ASP(代碼用Visual Basic編寫)以及JSP(代碼用Java編寫)腳本。

    web2py由如下組件構成:

    • 庫(libraries):提供web2py核心功能,可通過編程訪問。
    • web服務器:Rocket WSGI web服務器。
    • 管理(admin)應用:用于創建、設計和管理其它web2py應用。admin提供了一個完整的基于web的集成開發環境(IDE),用于開發web2py應用。它還包括其它功能,如基于web的測試和shell。
    • 示例(examples)應用:包含文檔和交互示例。應用示例是官方網站web2py.com的副本,并包含epydoc文檔。
    • 歡迎(welcome)應用:是其它應用的基本構建模板。默認時,它包含一個純CSS層疊菜單和用戶認證。

      web2py鼓勵開發人員將數據表達(Model)、數據表示(View)和應用工作流(Controller)分離。web2py中一個請求的典型工作流描述如下:

      web2py應用程序如下圖所示:
    • 模型 - 表示數據表和數據庫表。
    • 控制器 - 描述應用程序邏輯和工作流程。
    • 視圖 - 幫助渲染數據的顯示。
    • 語言 - 描述如何將應用程序中的字符string轉換為各種支持的語言。
    • 靜態文件 - 不需要處理(如圖像,CSS樣式表等)。
    • 關于和自述 - 項目的細節。
    • 錯誤 - 存儲應用程序生成的錯誤報告。
    • 會話 - 存儲與每個特定用戶相關的信息。
    • 數據庫 - 存儲SQLite數據庫和其他表信息。
    • 緩存 - 存儲緩存的應用程序項。
    • 模塊 - 模塊是其他可選的Python模塊。
    • 隱私 - 包含的文件由控制器訪問,但不直接由開發人員訪問。
    • 上傳 - 文件由模型訪問,但不直接由開發人員訪問。

    2、下載和安裝

    http://www.web2py.com/examples/default/download


    下載之后解壓如下:

    3、快速入門

    在Windows操作系統上, 執行: web2py.exe

    默認情況下,當執行完命令后,web2py會顯示開始界面和一個控件讓你設置administrator密碼和網站啟動的IP和端口地址。默認情況下web2py會啟動在127.0.0.1:8000這個地址上(就是本機的8000端口),但你可以選擇啟動在可用的IP和端口上。你可以命令行查詢可用的IP地址,在Windows上運行ipconfig,在OS X和Linux上運行ifconfig。當前我們假設web2py已經啟動在本機的8000端口上(127.0.0.1:8000)。如果web2py啟動在0.0.0.0:8000上則使用所有可用的網卡。

    • 現在我們點擊按鈕start server:
    • 點擊按鈕admin:
    • 輸入密碼之后,點擊登陸按鈕:

    這個頁面顯示所有安裝在web2py上安裝的應用,并且可以用admin賬戶管理。 web2py默認包含3個應用:

    • 一個admin應用,就是你正在使用的。
    • 一個examples應用,包含在線的文檔和一個web2py主頁的仿制品。
    • 一個welcome應用,這是一個基本的模板用來制作其他應用。如果你創建新的應用,這個應用就是模板,包含歡迎界面。

    在啟動web2py應用程序之后,使用上述URL,我們可以使用管理界面創建一個新模塊,例如“XiaoMu”。管理界面將要求密碼進行認證,因為管理員擁有添加和編輯任何新的Web應用程序的所有權限。

    讓新應用程序的名稱為“XiaoMu”。一旦創建了新的應用程序,用戶被重定向到包含相應應用程序的視圖,模型和控制器的頁面。

    用戶可以通過提及以下URL來查看新創建的應用程序:http://127.0.0.1:8000/XiaoMu
    默認情況下,用戶可以在點擊上述URL時查看以下屏幕。用于打印給定的網絡應用程序的消息的“XiaoMu”,該變化在由default.py控制器。

    # ---- example index page ---- def index():response.flash = T("Hello World,愛看書的小沐!")return dict(message=T('Welcome to web2py,愛看書的小沐!'))


    web2py包括執行創建,檢索,更新和刪除功能的應用程序。該CRUD周期描述了一個數據庫,這是執著的基本功能。所有的應用程序邏輯都寫在模型中,這些模型由控制器檢索并在視圖的幫助下顯示給用戶。
    web2py提供了一個用于管理,創建和刪除表或數據庫的界面,這被稱為“appadmin”。在實現表背后的邏輯之前,有必要創建數據庫及其關聯的表。
    訪問appadmin的URL:http://127.0.0.1:8000/XiaoMu/appadmin
    在點擊URL時,用戶將獲得與給定應用程序關聯的表的列表。

    在前面,我們已經學會了如何使用GUI部件啟動web2py服務器。
    可以通過從命令行提示符啟動服務器來跳過此窗口。

    python web2py.py -a"你的密碼"-i 127.0.0.1 -p 8000

    每當web2py服務器啟動時,它都會創建一個文件“ parameters_8000.py ”,其中所有密碼都以散列形式存儲。為了更安全的目的,可以使用以下命令行 -

    python web2py.py -a "<recycle>" -i 127.0.0.1 -p 8000

    4、示例測試

    4.1 Say hello

    • default.py修改如下(Controller):
    def index():return dict(message=T('Welcome to web2py,愛看書的小沐!'))
    • default/index.html修改如下(View):

      For debugging purposes you can always append:{{=response.toolbar()}}
    <html><head></head><body><h1>{{=message}}</h1></body> </html>
    • 瀏覽器訪問如下:

    4.2 Let’s count

    • default.py修改如下(Controller):
    def index():if not session.counter:session.counter = 1else:session.counter += 1return dict(message="Welcome to web2py,愛看書的小沐!", counter=session.counter)
    • default/index.html修改如下(View):
    <html><head></head><body><h1>{{=message}}</h1><h2>Number of visits: {{=counter}}</h2></body> </html>
    • 瀏覽器訪問如下:

    4.3 Say my name

    • default.py修改如下(Controller):
    def first():return dict()def second():return dict()
    • 新增default/first.html如下(View):
    {{extend 'layout.html'}} What is your name? <form action="second"><input name="visitor_name" /><input type="submit" /> </form>
    • 新增default/second.html如下(View):
    {{extend 'layout.html'}} <h1>Hello {{=request.vars.visitor_name}}</h1>
    • 瀏覽器訪問如下:
    http://127.0.0.1:8000/XiaoMu/default/first


    4.4 Postbacks

    • default.py修改如下(Controller):
    def first():form = SQLFORM.factory(Field('visitor_name', requires=IS_NOT_EMPTY()))if form.process().accepted:session.visitor_name = form.vars.visitor_nameredirect(URL('second'))return dict(form=form)def second():return dict()
    • 新增default/first.html如下(View):
    {{extend 'layout.html'}} What is your name? {{=form}}
    • 新增default/second.html如下(View):
    {{extend 'layout.html'}} <h1>Hello {{=session.visitor_name or "anonymous"}}</h1>
    • 瀏覽器訪問如下:

    4.5 An image blog

    創建一個新的應用:xiaomu_images,
    然后編輯它。

    • db.py修改如下(Model):
    db = DAL("sqlite://storage.sqlite")db.define_table('image',Field('title', unique=True),Field('file', 'upload'),format = '%(title)s')db.define_table('comment',Field('image_id', db.image),Field('author'),Field('email'),Field('body', 'text'))db.image.title.requires = IS_NOT_IN_DB(db, db.image.title) db.comment.image_id.requires = IS_IN_DB(db, db.image.id, '%(title)s') db.comment.author.requires = IS_NOT_EMPTY() db.comment.email.requires = IS_EMAIL() db.comment.body.requires = IS_NOT_EMPTY()db.comment.image_id.writable = db.comment.image_id.readable = False

    瀏覽器訪問:http://127.0.0.1:8000/xiaomu_images/appadmin

    依次通過界面添加圖片記錄到數據庫中:

    • default.py修改如下(Controller):
    def index():images = db().select(db.image.ALL, orderby=db.image.title)return dict(images=images)def show():image = db(db.image.id==request.args(0)).select().first()db.comment.image_id.default = image.idform = SQLFORM(db.comment)if form.process().accepted:response.flash = 'your comment is posted'comments = db(db.comment.image_id==image.id).select()return dict(image=image, comments=comments, form=form)def download():return response.download(request, db)
    • 新增default/show.html(View):
    {{extend 'layout.html'}} <h1>Image: {{=image.title}}</h1> <center> <img width="200px"src="{{=URL('download', args=image.file)}}" /> </center> {{if len(comments):}}<h2>Comments</h2><br /><p>{{for comment in comments:}}<p>{{=comment.author}} says <i>{{=comment.body}}</i></p>{{pass}}</p> {{else:}}<h2>No comments posted yet</h2> {{pass}} <h2>Post a comment</h2> {{=form}}
    • 瀏覽器訪問:http://127.0.0.1:8000/xiaomu_images/default/show/1

    5、PythonAnywhere

    • (1)打開web2py首頁
    http://web2py.com/

    • (2)點擊按鈕:try it now online

    • (3)填寫用戶名后,點擊give me my web2py

    • 訪問網址如下:http://xiaomu.pythonanywhere.com/welcome/default/index

    結語

    如果您覺得該方法或代碼有一點點用處,可以給作者點個贊,或打賞杯咖啡;╮( ̄▽ ̄)╭
    如果您感覺方法或代碼不咋地//(ㄒoㄒ)//,就在評論處留言,作者繼續改進;o_O???
    如果您需要相關功能的代碼定制化開發,可以留言私信作者;(????)
    感謝各位大佬童鞋們的支持!( ′ ▽′ )ノ ( ′ ▽′)っ!!!

    總結

    以上是生活随笔為你收集整理的【Web开发】Python实现Web服务器(web2py)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。