當前位置:首頁 » 編程語言 » python框架搭建

python框架搭建

發布時間: 2022-08-27 02:02:33

❶ 使用 python 和 Pygame 模塊構建一個游戲框架

在我的 這系列的第一篇文章 中, 我已經講解如何使用 Python 創建一個簡單的、基於文本的骰子 游戲 。這次,我將展示如何使用 Python 模塊 Pygame 來創建一個圖形化 游戲 。它將需要幾篇文章才能來得到一個確實做成一些東西的 游戲 ,但是到這系列的結尾,你將更好地理解如何查找和學習新的 Python 模塊和如何從其基礎上構建一個應用程序。

在開始前,你必須安裝 Pygame 。

有幾種方法來安裝 Python 模塊,但是最通用的兩個是:

兩個方法都工作的很好,並且每一個都有它自己的一套優勢。如果你是在 linux 或 BSD 上開發,可以利用你的發行版的軟體存儲庫來自動和及時地更新。

然而,使用 Python 的內置軟體包管理器可以給予你控制更新模塊時間的能力。而且,它不是特定於操作系統的,這意味著,即使當你不是在你常用的開發機器上時,你也可以使用它。pip 的其它的優勢是允許本地安裝模塊,如果你沒有正在使用的計算機的管理許可權,這是有用的。

如果 Python 和 Python3 都安裝在你的系統上,你想使用的命令很可能是 pip3,它用來區分 Python 2.x 的 pip 的命令。如果你不確定,先嘗試 pip3。

pip 命令有些像大多數 Linux 軟體包管理器一樣工作。你可以使用 search 搜索 Python 模塊,然後使用 install 安裝它們。如果你沒有你正在使用的計算機的管理許可權來安裝軟體,你可以使用 --user 選項來僅僅安裝模塊到你的家目錄。

Pygame 是一個 Python 模塊,這意味著它僅僅是一套可以使用在你的 Python 程序中的庫。換句話說,它不是一個像 IDLE 或 Ninja-IDE 一樣可以讓你啟動的程序。

一個電子 游戲 需要一個背景設定:故事發生的地點。在 Python 中,有兩種不同的方法來創建你的故事背景:

你的背景僅是一張圖片或一種顏色。你的電子 游戲 人物不能與在背景中的東西相互作用,因此,不要在後面放置一些太重要的東西。它僅僅是設置裝飾。

要開始一個新的 Pygame 工程,先在計算機上創建一個文件夾。 游戲 的全部文件被放在這個目錄中。在你的工程文件夾內部保持所需要的所有的文件來運行 游戲 是極其重要的。

一個 Python 腳本以文件類型、你的姓名,和你想使用的許可證開始。使用一個開放源碼許可證,以便你的朋友可以改善你的 游戲 並與你一起分享他們的更改:

然後,你告訴 Python 你想使用的模塊。一些模塊是常見的 Python 庫,當然,你想包括一個你剛剛安裝的 Pygame 模塊。

由於你將用這個腳本文件做很多工作,在文件中分成段落是有幫助的,以便你知道在哪裡放代碼。你可以使用塊注釋來做這些,這些注釋僅在看你的源文件代碼時是可見的。在你的代碼中創建三個塊。

接下來,為你的 游戲 設置窗口大小。注意,不是每一個人都有大計算機屏幕,所以,最好使用一個適合大多數人的計算機的屏幕大小。

這里有一個方法來切換全屏模式,很多現代電子 游戲 都會這樣做,但是,由於你剛剛開始,簡單起見僅設置一個大小即可。

在腳本中使用 Pygame 引擎前,你需要一些基本的設置。你必須設置幀頻,啟動它的內部時鍾,然後開始 (init)Pygame 。

現在你可以設置你的背景。

在你繼續前,打開一個圖形應用程序,為你的 游戲 世界創建一個背景。在你的工程目錄中的 images 文件夾內部保存它為 stage.png 。

這里有一些你可以使用的自由圖形應用程序。

你的圖像不必很復雜,你可以以後回去更改它。一旦有了它,在你文件的 Setup 部分添加這些代碼:

如果你僅僅用一種顏色來填充你的 游戲 的背景,你需要做的就是:

你也必須定義顏色以使用。在你的 Setup 部分,使用紅、綠、藍 (RGB) 的值來創建一些顏色的定義。

至此,你理論上可以啟動你的 游戲 了。問題是,它可能僅持續了一毫秒。

為證明這一點,保存你的文件為 your-name_game.py(用你真實的名稱替換 your-name)。然後啟動你的 游戲 。

如果你正在使用 IDLE,通過選擇來自 「Run」 菜單的 「Run Mole」 來運行你的 游戲 。

如果你正在使用 Ninja,在左側按鈕條中單擊 「Run file」 按鈕。

你也可以直接從一個 Unix 終端或一個 Windows 命令提示符中運行一個 Python 腳本。

如果你正在使用 Windows,使用這命令:

啟動它,不過不要期望很多,因為你的 游戲 現在僅僅持續幾毫秒。你可以在下一部分中修復它。

除非另有說明,一個 Python 腳本運行一次並僅一次。近來計算機的運行速度是非常快的,所以你的 Python 腳本運行時間會少於 1 秒鍾。

為強制你的 游戲 來處於足夠長的打開和活躍狀態來讓人看到它(更不要說玩它),使用一個 while 循環。為使你的 游戲 保存打開,你可以設置一個變數為一些值,然後告訴一個 while 循環只要變數保持未更改則一直保存循環。

這經常被稱為一個「主循環」,你可以使用術語 main 作為你的變數。在你的 Setup 部分的任意位置添加代碼:

在主循環期間,使用 Pygame 關鍵字來檢查鍵盤上的按鍵是否已經被按下或釋放。添加這些代碼到你的主循環部分:

也是在你的循環中,刷新你世界的背景。

如果你使用一個圖片作為背景:

如果你使用一種顏色作為背景:

最後,告訴 Pygame 來重新刷新屏幕上的所有內容,並推進 游戲 的內部時鍾。

保存你的文件,再次運行它來查看你曾經創建的最無趣的 游戲 。

退出 游戲 ,在你的鍵盤上按 q 鍵。

在這系列的 下一篇文章 中,我將向你演示,如何加強你當前空空如也的 游戲 世界,所以,繼續學習並創建一些將要使用的圖形!

via: https://opensource.com/article/17/12/game-framework-python

作者: Seth Kenlon 選題: lujun9972 譯者: robsean 校對: wxy

❷ 如何搭建python+selenium自動化測試框架

selenium是一個web的自動化測試工具,不少學習功能自動化的同學開始首選selenium,相因為它相比QTP有諸多有點:

*免費,也不用再為破解QTP而大傷腦筋

*小巧,對於不同的語言它只是一個包而已,而QTP需要下載安裝1個多G的程序。

*這也是最重要的一點,不管你以前更熟悉C、java、ruby、python、或都是C#,你都可以通過selenium完成自動化測試,而QTP只支持VBS

*支持多平台:windows、linux、MAC,支持多瀏覽器:ie、ff、safari、opera、chrome

*支持分布式測試用例的執行,可以把測試用例分布到不同的測試機器的執行,相當於分發機的功能。

關於selenium的基礎知識與java平台的結合,我之前寫過一個《菜鳥學習自動化測試》系列,最近學python,所以想嘗試一下selenium的在python平台如何搭建;還好這方法的文章很容易,在此將搭建步驟整理分享。

搭建平台windows

准備工具如下:

-------------------------------------------------------------

下載python

-------------------------------------------------------------

如果你是新學python,哪果你沒有要用的包是必須依賴於pyhton2.x 的,那麼請毫不猶豫的選擇python3.5吧!

window安裝步驟:

1、下載python安裝。

又報了個錯:

Chromeversionmustbe>=27.0.1453.0 (Driverinfo:chromedriver=2.0,platform=WindowsNT5.1SP3x86)

說我chrome的版本沒有大於27.0.1453.0,這個好辦,更新到最新版本即可。

安裝IEdriver

在新版本的webdriver中,只有安裝了iedriver使用ie進行測試工作。

iedriver的下載地址在這里,記得根據自己機器的操作系統版本來下載相應的driver。

暫時還沒嘗試,應該和chrome的安裝方式類似。

記得配置IE的保護模式

如果要使用webdriver啟動IE的話,那麼就需要配置IE的保護模式了。

把IE里的保護模式都選上或都勾掉就可以了。

❸ 干貨分享!Python三大web框架簡單介紹

1、Django



Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,模板T和視圖V。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。



2、Flask



Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 授權。



Flask也被稱為 “microframework” ,因為它使用簡單的核心,用 extension 增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。



Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm + Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。



3、Tornado



Tornado是一種 Web 伺服器軟體的開源版本。Tornado 和現在的主流 Web 伺服器框架(包括大多數 Python 的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。



得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個 理想框架。



關於干貨分享!Python三大web框架簡單介紹,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。

❹ 怎麼搭建 python 的介面自動化測試框架

1.框架搭建
1.1 將struts2中的jar文件導入到項目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 將struts.xml文件拷貝到項目的src目錄下
1.3 修改web.xml文件
添加:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.action中方法的調用方式
2.1 自動方法調用(只能調用execute)
2.2 指定方法調用(通過設置action標簽中的method屬性)
2.3 動態方法調用(在調用時,在action後加!方法名稱,如:login!deletUser)
注意:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
2.4 通配符調用
3. action接收客戶端參數的方式
3.1 直接在action中定義參數變數,並生成set和get方法
3.2 定義接收參數的類
注意:都要為action的成員變數提供get和set方法
3.3 讓action實現ModelDriven介面,並實現裡面的getModel方法
4.獲取request,session,application的方式
4.1 用ActionContext獲取,實際上獲取到的都是Map對象
4.2 用ServletActionContext獲取,獲取到的是基於Servlet API的對象

❺ 如何搭建python自動化測試框架

1
新建一台Jenkins伺服器,安裝並配置好Jenkins

2
配置一個自動化測試腳本的代碼庫,可以使用Git或者SVN等版本控制工具。然後在Jenkins伺服器上配置一個Job,負責自動的同步最新代碼到Jenkins伺服器上。
3
配置要跑自動化測試的虛擬機VM,推薦干凈環境下安裝需要跑自動化測試的依賴軟體工具或者配置以及自動化測試工具(不提前安裝配置也行,可以在跑自動化之前用另外的腳本自動安裝配置),配置好之後關機並打一個snapshot鏡像快照,並命名為prebuild或其它。

4
新建一個Jenkins Job,用來跑自動化。配置需要連接並使用的自動化測試虛擬機,配置要構建的自動化測試框架xml腳本文件(後面步驟有說明)和target,以及要歸檔的測試報告,郵件發送等等。

5
接下來的重點就是自動化測試框架的xml腳本文件了,首先裡面定義一個target,負責獲取自動化測試對象的安裝包。
6
接著定義一個target(可選),負責從版本庫上獲取自動化測試腳本同步到Jenkins伺服器上(也可以直接使用Jenkins Job本身的插件配置來獲取代碼)。
7
定義一個target,負責連接到虛擬機伺服器,並恢復到虛擬機的原始狀態例如prebuild,然後開機
8
定義一個target,負責拷貝項目產品安裝包和自動化測試源代碼到目標虛擬機上。
9
定義一個target,負責連接到目標測試虛擬機,並打開自動化測試工具,然後運行自動化測試腳本
10
定義一個target,負責處理自動化測試報告文件和日誌文件並把它們從自動化測試虛擬機拷貝到Jenkins伺服器對應的Job工作空間下。
11
最後定義一個主target,按照上面的target流程依次調用。這個主target就是Jenkins伺服器上的自動化測試Job中配置的需要構建的Target。

❻ 怎樣搭建python和robotframework環境

1、安裝pythonhttps://www.python.org/
RF框架是基於python
的,所以一定要有python環境。由於Robot
Framework
框架是基於Python2
開發,所以這里我們選擇安裝Python2
2、安裝steuptools
與piphttps://pypi.python.org/pypi/setuptools
https://pypi.python.org/pypi/pip
3、安裝Robot
Frameworkhttps://pypi.python.org/pypi/robotframework/2.8.7
4、安裝wxPython:http://www.wxpython.org/download.php
5、安裝RIDEhttps://pypi.python.org/pypi/robotframework-ride
6、安裝robotframework-selenium2libraryhttps://pypi.python.org/pypi/robotframework-selenium2library/
注意:1、python要添加到環境變數的path中2、錯誤:command:
pybot.bat
--argumentfile
c:/users/keikei/appdata/local/temp/RIDEama2ym.d/argfile.txt
--listener
D:/Python27/lib/site-packages/robotide/contrib/testrunner/TestRunnerAgent.py:52418
E:robot/測試項目
解決:將「C:/Python27/Scripts
」添加到PATH環境變數中。命令提示符號查看,RF版本。提示pybot
不是內部命令,說明環境變數設置有問題。
3、RIDE的屬性目標需要修改:C:/Python27/python.exe
-c
"from
robotide
import
main;
main()"
4、我們常常會遇到,安裝完成RIDE
後,雙擊桌面的RIDE
不能啟動的情況,這是由於RIDE
所依賴的
wxPython
版本不一直造成的。重新安裝相應的版本

❼ 如何用Python寫一個web框架

STEP.1

我們首先得選擇基於什麼協議來寫這種框架。我們可以選擇CGI協議,或者是WSGI介面。如果使用CGI,實際上我們只是按著CGI的規范寫了一個python程序,然後每次伺服器收到請求,就fork一個程序來執行它,然後返回一個http文檔,性能比較低下。對於WSGI,而是一個存在於伺服器和應用間的介面,在WSGI之前,web應用都是依賴於伺服器的,現在流行的python框架都支持WSGI介面。

STEP.2 PEP-333

這一段是PEP-333 所提供的樣例代碼。

def simple_app(environ, start_response):
"""Simplest possible application object"""
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return ['Hello world! ']

這里的application被傳入了兩個值。

  • environ

  • start_response。
    environ是一個字典,保存了http請求的信息。
    start_response是一個函數,發送http響應。她有兩個參數status 和 start_headers。

  • status必須是由狀態編號和具體信息組成的字元串,必須符合RFC 2616。

  • start_headers是一個(header_name,header_value) 元組的列表元組列表。其中的hearder_name必須是合法的http header欄位名。在RFC 2616, Section 4.2中有詳細定義。
    當然官方還給出了類的實現。

  • def __init__(self, environ, start_response):


  • self.environ = environ


  • self.start = start_response

  • def __iter__(self):


  • status = '200 OK'


  • response_headers = [('Content-type','text/plain')]


  • self.start(status, response_headers)


  • yield "Hello world! "

  • 了解了如上信息後,基本上可以開始了。我們就到官方給的代碼上進行修改吧。

    STEP.3 將路徑鏈接到函數

    首先我們得把用戶請求的路徑,鏈接到函數。我們可以實現一個getPage方法,專門做這件事。我們所擁有的信息,只有environ['PATH_INFO']。

  • urls = [('^/index/$','func_index'),

  • ('^/comment/$','func_comment'),

  • ('^/environ/$','get_environ'),

  • ('^/post/$','post_test')]#urls是提供給app開發者來做鏈接的。

  • def getPage(self):

  • path = self.environ['PATH_INFO']

  • for pattern in self.urls:

  • m = re.match(pattern[0],path)#將urls元素的第0項和path進行比對,如果匹配上了,返回函數名

  • if m:

  • function = getattr(self,pattern[1])#getattr方法來得到函數

  • return function()

  • return '404 not found'#沒匹配上任何東西

  • 寫到這里之後,每次添加頁面,就只需要在urls列表中添加一個元祖就行了。

    STEP.4 獲取模版

    既然是寫web app,模版肯定是得有的。這里我提供了一種getTemplate方法來做這件事。不過我只提供了變數的替換。

  • def getTemplate(self,tem_name,rep=0):

  • #這個函數返回內容,tem_name是文件名字

  • #參數rep是一個字典,默認為0

  • f = open('template/'+tem_name)

  • html = f.read()

  • if(rep!=0):

  • for to_replace in rep:

  • strinfo = re.compile('{\%s*'+str(to_replace)+'s*\%}')

  • html = strinfo.sub(rep[to_replace],html)

  • return html

  • STEP.5 POST數據的處理

    要想獲取POST數據,我們得通過environ['wsgi.input']來處理。而他實際上就是系統的標准輸入。

  • environ['wsgi.input'] = sys.stdin

  • 知道這點後就很好寫了。

  • def getPost(self):

  • if(self.environ['REQUEST_METHOD'] == 'POST'):

  • try:

  • request_body_size = int(self.environ.get('CONTENT_LENGTH', 0))#讀出content_length的值

  • except:

  • request_body_size = 0

  • request_body = self.environ['wsgi.input'].read(request_body_size) #請求的body

  • post_data = parse_qs(request_body)#parse_qs是cgi提供的方法,幫助我們處理請求

  • return post_data

  • 資料庫的鏈接

  • import MySQLdb

  • class Model(object):

  • def __init__(self):

  • self.host = 'localhost'

  • self.port = 3306

  • self.user = 'admin'

  • self.passwd = 'admin'

  • self.db = 'xieyi'

  • def build_connect(self):

  • self.conn = MySQLdb.connect(

  • host = self.host,

  • port = self.port,

  • user = self.user,

  • passwd = self.passwd,

  • db = self.db

  • )

  • def exec_ins(self,ins):

  • cur = self.conn.cursor()

  • num = cur.execute(ins)

  • info = {}

  • if(num>0):

  • info = cur.fetchmany(num)

  • cur.close()

  • self.conn.commit()

  • return info

  • def close(self):

  • self.conn.close()

  • STEP.6 清理工作

    很多配置如果放到代碼中,會增加閱讀負擔。於是把urls,model抽取出來。
    使得配置更加方便。



❽ 廖雪峰的python實戰是自己搭建框架 還是用的現成的框架

Python實戰:四周實現爬蟲系統(高清視頻)網路網盤

鏈接:

提取碼: c6yg 復制這段內容後打開網路網盤手機App,操作更方便哦

若資源有問題歡迎追問~

熱點內容
大型存儲櫃 發布:2025-01-17 06:08:27 瀏覽:644
發生腳本錯誤怎麼辦 發布:2025-01-17 06:03:02 瀏覽:793
刪除文件夾時顯示在另一程序打開 發布:2025-01-17 06:03:01 瀏覽:543
安卓手機怎麼裝驅動 發布:2025-01-17 06:02:17 瀏覽:622
安卓微信拍了拍怎麼改 發布:2025-01-17 05:57:31 瀏覽:46
BMF伺服器的系統服務怎麼關 發布:2025-01-17 05:50:29 瀏覽:876
免刷安卓系統怎麼進入usb調試 發布:2025-01-17 05:48:21 瀏覽:837
資料庫的三層架構 發布:2025-01-17 05:17:36 瀏覽:149
雲頂之弈有人開腳本怎麼舉報 發布:2025-01-17 05:16:59 瀏覽:682
sql包含數字 發布:2025-01-17 05:11:56 瀏覽:292