導航:首頁 > 編程語言 > python做一個網頁

python做一個網頁

發布時間:2023-03-25 19:20:03

A. python可以開發網站嗎

Python是可以開發網站的,國內的豆瓣就是典型的Python開發的;使用python Django做網頁的步驟:

1 、創建一個django項目(使用django-admin.py startproject MyDjangoSite )

2、建立視圖

from django.http import HttpResponsedef hello(request): return HttpResponse("第一個簡單的python django項目。")

B. python能做網站嗎

python可以做網站,Python有很多優秀的網站框架,可以非常快速的建一個網站。比如django之類的框架。

Django、TurboGears、Eurasia、UliWeb等:突出的共同特色有:

使用django框架建站的步驟:

1、導入django包

可直接在pycharm下載,或者pip/easy_install

2、設置環境變數

path 添加 C:Python27Libsite-packagesdjangobin;C:Python27Scripts

3、新建一個工程

D:>django-admin.py startproject mysite

4、工程下新建一個app

D:mysite> python manage.py startapp blog

5、初始化admin後台資料庫

D:mysite>python manage.py migrate

6、啟動服務

D:mysite>python manage.py runserver

更多Python知識請關注Python視頻教程欄目。

C. 用Python做一個網站,照片生成漫畫頭像,有這個網站就夠了。

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理

對於動漫,大家一定都不陌生,我周圍的不少單身碼農都是動漫迷。我也是一個資深動漫迷,動漫裡面有好多漂亮的小姐姐,比如斗破蒼穹的美杜莎,雲韻,蕭薰兒,天行九歌裡面紫女,焰靈姬。當然女孩也有自己的動漫情懷亮脊差,部門裡面還有小姐姐喜歡cosplay呢~~

於是乎我想既然Python無所不能,不如用Python做一個小程序幫小姐姐的頭像轉成漫畫,以後也可以搭訕一下部門的小姐姐,吹噓一把!哈哈,想想都幸福,於是熬了一夜,總於完成了這個小程序。

1

首先,我們來看一下,漫畫和我敬皮們的照片的區別,如下圖所示:

2

圖片轉漫畫——減少色彩

圖片轉漫畫——減少色彩
有了上述的兩個細節的描述,我們接下來的程序,也將圍繞著這兩點進行展開。

其對應的程序入下圖所示:

上述程序中,我們需要注意的一點就是對於輸入的圖片我們必須要調整圖片尺寸為4的整數倍,因為在金字塔下采樣的過程中,圖片會默認降到原先尺寸的1/4大小,如果無法除盡的話,程序會自動向上取整,這樣的話,我們上采樣之後,野耐模糊的圖片和最初輸入的圖片在解析度上會有些許的差別,這樣會使後面的程序保存。

3

完成了上面幾步之後,我們接著要進行增強輪廓了。我們的程序如下圖所示:

上述的程序中,我們利用opencv的自適應閾值函數來分割輪廓,然後將我們的輪廓圖片和模糊後的圖片按照輪廓圖片的數值進行與操作,最終得到我們的漫畫圖片。

以上便是程序的核心部分,接下來我們用Python裡面的著名框架flask程序做一個簡單額網站頁面。

4

對於flask程序,想必大家或多或少都有一定的了解,我們所使用的flask程序非常簡單,我簡單的說一下思路和步驟:

D. 純 Python 寫一個 Web 框架,就是這么簡單

造輪子是最好的一種學習方式,本文嘗試從0開始造個Python Web框架的輪子,我稱它為 ToyWebF 。

本文操作環境為:MacOS,文中涉及的命令,請根據自己的系統進行替換。

ToyWebF的簡單特性:

下面我們來實現這些特性。

首先,我們需要安裝gunicorn,回憶一下Flask框架,該框架有內置的Web伺服器,但不穩定,所以上線時通常會替換成uWSGI或gunicorn,這里不搞這個內置Web服務,直接使用gunicorn。

我們創建新的目錄與Python虛擬環境,在該虛擬環境中安裝gunicorn

在啥都沒有的情況下,構建最簡單的Web服務,在ToyWebF目錄下,創建app.py與api.py文件,寫入下面代碼。

運行 gunicorn app:app 訪問 http://127.0.0.1:8000 ,可以看見 Hello, World! ,但現在請求體中的參數在environ變數中,難以解析,我們返回的response也是bytes形式。

我們可以使用webob庫,將environ中的數據轉為Request對象,將需要返回的數據轉為Response對象,處理起來更加直觀方便,直接通過pip安裝一下。

然後修改一下API類的 __call__方法 ,代碼如下。

上述代碼中,通過webob庫的Request類將environ對象(請求的環境信息)轉為容易處理的request,隨後調用handle_request方法對request進行處理,處理的結果,通過response對象返回。

handle_request方法在ToyWebF中非常重要,它會匹配出某個路由對應的處理方法,然後調用該方法處理請求並將處理的結果返回,在解析handle_request前,需要先討論路由注冊實現,代碼如下。

其實就是將路由和方法存到self.routes字典中,可以通過route裝飾器的形式將路由和方法關聯,也可以通過add_route方法關聯,在app.py中使用一下。

因為url中可以存在變數,如 @app.route("/hello/{name}") ,所以在匹配時,需要進行解析,可以使用正則匹配的方式進行匹配,parse這個第三方庫已經幫我們實現了相應的正則匹配邏輯,pip安裝使用一下則可。

這里定義find_handler方法來實現對self.routes的遍歷。

了解了路由與方法關聯的原理後,就可以實現handle_request方法,該方法主要的路徑就是根據路由調度對應的方法,代碼如下。

在該方法中,首先實例化webob庫的Response對象,然後通過self.find_handler方法獲取此次請求路由對應的方法和對應的參數,比如。

它將返回hello方法對象和name參數,如果是 /hello/二兩 ,那麼name就是二兩。

因為route裝飾器可能裝飾器的類對象,比如。

此時self.find_handler方法返回的hanler就是個類,但我們希望調用的是類中的get、post、delete等方法,所以需要一個簡單的判斷邏輯,通過inspect.isclass方法判斷handler如果是類對象,那麼就通過getattr方法獲取類對象實例的中對應的請求方法。

如果類對象中沒有該方法屬性,則拋出該請求類型不被允許的錯誤,如果不是類對象或類對象中存在該方法屬性,則直接調用則可。

此外,如果方法的路由並沒有注冊到self.routes中,即404的情況,定義了defalut_response方法返回其中內容,代碼如下。

如果handle_request方法中調度的過程出現問題,則直接raise將錯誤拋出。

至此,一個最簡單的web服務就編寫完成了。

回顧Flask,Flask可以支持HTML、CSS、JavaScript等靜態文件,利用模板語言,可以構建出簡單但美觀的Web應用,我們讓TopWebF也支持這一功能,最終實現圖中的網站,完美兼容靜態文件。

Flask使用了jinja2作為其html模板引擎,ToyWebF同樣使用jinja2,jinja2其實實現一種簡單的DSL(領域內語言),讓我們可以在HTML中通過特殊的語法改變HTML的結構,該項目非常值得研究學習。

首先 pip install jinja2 ,然後就可以使用它了,在ToyWebF項目目錄中創建templates目錄,以該目錄作為默認的HTML文件根目錄,代碼如下。

首先利用jinja2的FileSystemLoader類將file system中的某個文件夾作為loader,然後初始化Environment。

在使用的過程中(即調用template方法),通過get_template方法獲得具體的某個模板並通過render方法將對應的內容傳遞給模板中的變數。

這里我們不寫前端代碼,直接去互聯網中下載模板,這里下載了Bootstrap提供的免費模板,可以自行去 https://startbootstrap.com/themes/freelancer/ 下載,下載完後,你會獲得index.html以及對應的css、jss、img等文件,將index.html移動到ToyWebF/templates中並簡單修改了一下,添加一些變數。

然後在app.py文件中為index.html定義路由以及需要的參數。

至此html文件的支持就完成了,但此時的html無法正常載入css和js,導致頁面布局非常醜陋且交互無法使用。

接著就讓ToyWebF支持css、js,首先在ToyWebF目錄下創建static文件夾用於存放css、js或img等靜態文件,隨後直接將前面下載的模板,其中的靜態文件復制到static中則可。

通過whitenoise第三方庫,可以通過簡單的幾行代碼讓web框架支持css和js,不需要依賴nginx等服務,首先 pip install whitenoise ,隨後修改API類的 __init__ 方法,代碼如下。

其實就是通過WhiteNoise將self.wsgi_app方法包裹起來,在調用API的 __call__ 方法時,直接調用self.whitenoise。

此時,如果請求web服務獲取css、js等靜態資源,WhiteNoise會獲取其內容並返回給client,它在背後會匹配靜態資源在系統中對應的文件並將其讀取返回。

至此,一開始的網頁效果就實現好了。

web服務如果出現500時,默認會返回 internal server error ,這顯得比較丑,為了讓框架使用者可以自定義500時返回的錯誤,需要添加一些代碼。

首先API初始化時,初始self.exception_handler對象並定義對應的方法添加自定義的錯誤

在handler_request方法進行請求調度時,調度的方法執行邏輯時報500,此時不再默認將錯誤拋出,而是先判斷是否有自定義錯誤處理。

在app.py中,自定義錯誤返回方法,如下。

custom_exception_handler方法只返回自定義的一段話,你完全可以替換成美觀的template。

我們可以實驗性定義一個路由來看效果。

Web服務的中間件也可以理解成鉤子,即在請求前可以對請求做一些處理或者返回Response前對Response做一下處理。

為了支持中間件,在TopWebF目錄下創建middleware.py文件,在編寫代碼前,思考一下如何實現?

回顧一下現在請求的調度邏輯。

1.通過routes裝飾器關聯路由和方法 2.通過API.whitenoise處理 3.如果是請求API介面,那麼會將參數傳遞給API.wsgi_app 4.API.wsgi_app最終會調用API.handle_request方法獲取路由對應的方法並調用該方法執行相應的邏輯

如果希望在request前以及response後做相應的操作,那麼其實就需要讓邏輯在API.handle_request前後執行,看一下代碼。

其中add方法會實例化Middleware對象,該對象會將當前的API類實例包裹起來。

Middleware.handle_request方法其實就是在self.app.handle_request前調用self.process_request方法處理request前的數據以及調用self.process_response處理response後的數據,而核心的調度邏輯,依舊交由API.handle_request方法進行處理。

這里的代碼可能會讓人感到疑惑, __call__ 方法和handle_request方法中都有self.app.handle_request(request),但其調用對象似乎不同?這個問題暫時放一下,先繼續完善代碼,然後再回來解釋。

接著在api.py中為API創建middleware屬性以及添加新中間件的方法。

隨後,在app.py中,自定義一個簡單的中間件,然後調用add_middleware方法將其添加。

定義好中間件後,在請求調度時,就需要使用中間件,為了兼容靜態文件的情況,需要對css、js、ing文件的請求路徑做一下兼容,在其路徑中加上/static前綴

緊接著,修改API的 __call__ ,兼容中間件和靜態文件,代碼如下。

至此,中間件的邏輯就完成了。

但代碼中依舊有疑惑,Middleware類中的 __call__ 方法和handle_request方法其調用的self.app到底是誰?

為了方便理解,這里一步步拆解。

如果沒有添加新的中間件,那麼請求的調度邏輯如下。

在沒有添加中間件的情況下,self.app其實就是API本身,所以 middleware.__call__ 中的self.app.handle_request就是調用API.handle_request。

如果添加了新的中間件,如上述代碼中添加了名為SimpleCustomMiddleware的中間件,此時的請求調度邏輯如下。

因為注冊中間件時,Middleware.add方法替換了原始Middleware實例中的app對象,將其替換成了SimpleCustomMiddleware,而SimpleCustomMiddleware也有app對象,SimpleCustomMiddleware中的app對象,才是API類實例。

在請求調度的過程中,就會觸發Middleware類的handle_request方法,該方法就會執行中間件相應的邏輯去處理request和response中的數據。

當然,你可以通過Middleware.add方法添加多個中間件,這就會構成棧式調用的效果,代碼如下。

啟動web服務後,其執行效果如下。

E. 如何用python和web.py搭建一個網站

一、使用工具:python、web.py

二、搭建步驟:

1、 環境搭建。

安裝python2.7.10,注意要把python路徑加入系統環境變數。版本不能低於2.7.9,但不能用3.0以上,web.py支持不好。安裝web.py, 官方網下載來裝就行,記得是解壓後進去:python setup.py install,安裝wingIDE,這個是最好用的python編輯器,裝apache並配置python-wscgi,

2. 開發。

建立資料庫建議寫個生成腳本,比如createDataBase.py,有改動重新運行一遍,不要試用ide去建。

三、注意事項:注意要把python路徑加入系統環境變數。版本不能低於2.7.9,但不能用3.0以上,web.py支持不好。

F. 如何用Python做一個網站

G. 使用python創建web靜態網站

打開pyCharm企業版軟體,創建一個Django項目,其中Django是一個Web框架,用於幫助開發互動式網站的工具。生成項目文件如下圖所示:

在url.py文件中添加為:

在view.py文件中添加:

在templates文件夾中新建index.html文件

其中<a>為超鏈接標簽,在此使用了一個模板標簽,是用大括弧和百分號({% %})表示的。{% url 'namespacename:index' %}是一個模板標簽,指向url.py中index的URL模式匹配。在這個實例中,namespacename是對應的命名空間名稱,index是URL模式。

H. python可以做網站嗎

python可以做網站嗎?
python當然可以做網站的,python的主要用途之一就是web開發。Django和Flask等基於Python的Web框架最近在Web開發中就非常流行。
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。
Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 授權。Flask也被稱為 「microframework」 ,因為它使用簡單的核心,用 extension 增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。
相關推薦:《Python教程》以上就是小編分享的關於python可以做網站嗎的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

I. 怎麼實現python寫網頁後台實現與資料庫交互

1、批處理腳本中,要想與用戶實行交互,需要用到命令set配合/p參數一起使用。

2、set命令是用來定義變數並賦值的,而使用/p參數後,set並不馬上在命令中給變數賦值,而是另起一行,等待用戶的輸入,並用戶的輸入內容做為值賦給變數。

3、而且在set/p後,可以加入提示語句,讓用戶知道,程序正在等待輸入。

4、與用戶交互,雖然已經實現了用戶輸入的接收。但還需要對接收到的內容進行處理,這時可以利用if語句來完成。

5、運行後的效果如下,用戶輸入admin時,顯示「輸入正確」,否則,顯示「請輸入正確的用戶名」。

6、再來完善一下腳本代碼,做一個簡單的用戶登錄判斷。主要用到goto語句和if語句,實現python寫網頁後台實現與資料庫交互。

J. 想用python編寫一個腳本,登錄網頁,在網頁里做一系列操作,應該怎樣實現

python編寫一個腳本臘廳的具體操作:

1、首先,打開python並創建一個新的PY文件。

閱讀全文

與python做一個網頁相關的資料

熱點內容
為什麼我的世界天空伺服器進不去 瀏覽:260
釘釘直播後的視頻如何線上加密 瀏覽:501
聽主的命令 瀏覽:206
全民上雲時代雲伺服器 瀏覽:519
iphone不創建id如何下載app 瀏覽:970
windowsphp擴展安裝 瀏覽:93
emacslinux配置文件 瀏覽:379
python3在線教程 瀏覽:114
不小心刪文件夾的文件 瀏覽:480
java獲取手機IP 瀏覽:816
手機rar解壓密碼獲取 瀏覽:344
程序員被辭退工資怎麼處理 瀏覽:494
戀活的模型沒加密 瀏覽:159
如何把安卓機的微信轉移蘋果 瀏覽:583
爬山演算法相關題目 瀏覽:724
vc編程大全 瀏覽:118
excel表格單列數據加密 瀏覽:648
給同事的解壓話語 瀏覽:993
linux關閉網卡命令行 瀏覽:455
史上最漂亮程序員 瀏覽:771