国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

教你如何搭建簡易網站:python開發web服務器

來源:懂視網 責編:小采 時間:2020-11-27 19:30:45
文檔

教你如何搭建簡易網站:python開發web服務器

教你如何搭建簡易網站:python開發web服務器:Python中有數不清的Web框架,從基本的微小架構到完整的架構,它們自有各自的優點。那么你準備使用它來做一些web開發,但在探討細節之前,讓我們從頭開始。目標用已有的豐富圖片資源建一個看圖網站條件開發語言:python3庫:flask :一個開源的python w
推薦度:
導讀教你如何搭建簡易網站:python開發web服務器:Python中有數不清的Web框架,從基本的微小架構到完整的架構,它們自有各自的優點。那么你準備使用它來做一些web開發,但在探討細節之前,讓我們從頭開始。目標用已有的豐富圖片資源建一個看圖網站條件開發語言:python3庫:flask :一個開源的python w

Python中有數不清的Web框架,從基本的微小架構到完整的架構,它們自有各自的優點。那么你準備使用它來做一些web開發,但在探討細節之前,讓我們從頭開始。

目標

用已有的豐富圖片資源建一個看圖網站

條件

開發語言:

python3

庫:

flask :一個開源的python web服務器框架
jinja2:flask默認的模板引擎

編輯器:

推薦pycharm

一個最簡單的web服務器

python給我們提供了一個接口:WSGI:Web Server Gateway Interface
它只要求Web開發者實現一個函數,就可以響應HTTP請求。而不用觸到TCP連接、HTTP原始請求和響應格式。
下面實例一個最簡單的web應用:

# hello.pydef application(environ, start_response):
 start_response('200 OK', [('Content-Type', 'text/html')]) return [b'<h1>Hello, Python web!</h1>']# server.py# 從wsgiref模塊導入:from wsgiref.simple_server import make_server# 導入我們自己編寫的application函數:from hello import application# 創建一個服務器,IP地址為空,端口是8000,處理函數是application:httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...')# 開始監聽HTTP請求:httpd.serve_forever()
  • environ:一個包含所有HTTP請求信息的dict對象;

  • start_response:一個發送HTTP響應的函數。

  • 將兩個腳本放在同一目錄下,運行server.py,訪問 http://127.0.0.1:8000 就能看到效果了。

    處理url

    其實web應用,就是對不同url的處理。
    我們將hello.py進行修改

    def application(environ, start_response):
     method = environ['REQUEST_METHOD']
     path = environ['PATH_INFO'] if method=='GET' and path=='/': return handle_home(environ, start_response) if method=='POST' and path='/signin': return handle_signin(environ, start_response)
    ...

    這樣就會處理兩個url,’/’和’/signin’
    當然你可以這么一直寫下去…如果你不嫌累的話。

    使用模板

    既然上面的方法太累太慢,那我們學點高級的:
    flask

    看代碼

    from flask import Flaskfrom flask import request
    
    app = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def home():
     return '<h1>Home</h1>'@app.route('/signin', methods=['GET'])def signin_form():
     return '''<form action="/signin" method="post">
     <p><input name="username"></p>
     <p><input name="password" type="password"></p>
     <p><button type="submit">Sign In</button></p>
     </form>'''@app.route('/signin', methods=['POST'])def signin():
     # 需要從request對象讀取表單內容:
     if request.form['username']=='admin' and request.form['password']=='password': return '<h3>Hello, admin!</h3>'
     return '<h3>Bad username or password.</h3>'if __name__ == '__main__':
     app.run()

    注意,這個是單文件。
    來分析這個腳本:
    Flask通過Python的裝飾器在內部自動地把URL和函數給關聯起來。
    啟動運行后,我們訪問
    ‘/’,看到的頁面是一個“HOME”單詞
    ‘/signin’,此刻是通過GET訪問,看到的是一個表單,填寫’admin’和’password’,點擊登錄 ——>
    ‘/signin’,此刻是通過POST訪問,看但的是Hello, admin!或者Bad username or password.

    對于不了解GET與POST和HTML表單的同學,推薦去學習html基礎。

    但這樣還是有些不靈活,用戶訪問看到的內容需要全部寫出來,不能復用,太麻煩

    使用模板引擎

    模板解決了我們上面的問題。先看一段代碼

    from flask import Flask, request, render_templateimport os
    
    app = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def home():
     path = '/'
     all_file = os.listdir(path) return render_template('home.html',all_file = all_file)if __name__ == '__main__':
     app.run()

    這里讀取了根目錄下所有文件的名字,將其傳給html模板頁面

    然后,在.py的同目錄下建立目錄templates,這里存放的是我們的模板,模板的特殊在于可以使用python指令及變量在html里

    home.html

    {% for i in all_file %} <a href="/page/{{ i }}">{{ i }}</a>{% endfor %}

    {% %} 中寫的是指令
    {{ }} 中寫的是變量

    所以最終的結果是,會生成多個標簽,標簽的名字就是目錄名。

    以上基礎教程參照廖雪峰。

    那么,基礎已經將完了,接下來就會是成品了:

    成品

    用我們上次爬取的圖片來建站,good idea!
    這里在.py腳本同目錄下建立一個static目錄存放圖片。(圖片放在.py所在目錄外層會鏈接不到)

    #beautiful_pic.pyfrom flask import Flaskfrom flask import requestfrom flask import render_templateimport os
    
    app = Flask(__name__)#顯示所有文件夾@app.route('/',methods=['GET','POST'])def list_all():
     path = './static/mzitu/'
     all_pic = os.listdir(path) return render_template('welcome.html',all_pic = all_pic)#具體展示圖片@app.route('/<path>',methods=['GET','POST'])def list_pic(path):
     #錯誤鏈接無法找到圖片目錄就提示錯誤鏈接
     if(path not in os.listdir('./static/mzitu/')): return render_template('error.html')
     pic_path = './static/mzitu/' + path
     all_pic = os.listdir(pic_path) return render_template('pic.html',title = path,all_pic = all_pic)if __name__ == '__main__': #port為端口,host值為0.0.0.0即不單單只能在127.0.0.1訪問,外網也能訪問
     app.run(host='0.0.0.0',port='2333')

    然后是模板文件
    welcome.html

    <!DOCTYPE html><html lang="en"><head>
     <meta charset="UTF-8">
     <title>歡迎來到福利頁面</title></head><body>
     {% for i in all_pic: %} <a href="/{{i}}">{{i}}</a>
     <br><br>
     {% endfor %}</body></html>

    pic.html

    <!DOCTYPE html><html lang="en"><head>
     <meta charset="UTF-8">
     <title>{{ title }}</title></head><body>
     {% for i in all_pic %} <img src="./static/mzitu/{{title}}/{{i}}" alt="{{i}}">
     <br>
     {% endfor %}</body></html>

    error.html

    <!DOCTYPE html><html lang="en"><head>
     <meta charset="UTF-8">
     <title>出錯了</title></head><body>
     你要訪問的頁面不存在... <br>
     <a href="/">點此返回首頁</a></body></html>

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    教你如何搭建簡易網站:python開發web服務器

    教你如何搭建簡易網站:python開發web服務器:Python中有數不清的Web框架,從基本的微小架構到完整的架構,它們自有各自的優點。那么你準備使用它來做一些web開發,但在探討細節之前,讓我們從頭開始。目標用已有的豐富圖片資源建一個看圖網站條件開發語言:python3庫:flask :一個開源的python w
    推薦度:
    標簽: 網站 簡單 網頁
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产91在线 | 日本 | 精品国产日韩一区三区 | 亚洲精品不卡久久久久久 | 亚洲第一页在线播放 | 国产免费一区二区三区香蕉精 | 国产精品自在欧美一区 | 国产日韩欧美一区二区三区视频 | 日韩在线免费视频观看 | 日本另类αv欧美另类aⅴ | 91大神在线观看精品一区 | 中文字幕一区二区三区在线观看 | 欧美雌雄双性人交xxxx | 免费看黄色毛片 | 91日韩欧美 | 国产视频一 | 亚欧成人一区二区 | 欧美另类精品一区二区三区 | 欧美黄色第一页 | 日本色图在线观看 | 精品国产一区二区三区19 | 国产精品伦一区二区三级视频 | 国产精品免费视频能看 | 精品日韩一区二区 | 精品国产乱码久久久久久一区二区 | 日韩一级精品视频在线观看 | 天天操夜夜草 | 欧美日韩国内 | 亚洲久草 | 亚洲综合一区二区精品久久 | 欧美激情一区二区三区视频 | 免费亚洲网站 | 国产精品欧美亚洲韩国日本不卡 | 538精品在线视频 | 欧美精品国产日韩综合在线 | 欧洲色图亚洲色图 | 欧美国产精品 | 精品久久久久久综合日本 | 国产一区二区免费播放 | 亚洲高清在线观看 | 欧美第一页在线 | 国产不卡视频在线播放 |