欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

本地部署Python?Flask并搭建web問(wèn)答應(yīng)用程序框架實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)的操作方法

 更新時(shí)間:2023年12月21日 10:56:43   作者:nagiY  
Flask是一個(gè)Python編寫(xiě)的Web微框架,使用Python語(yǔ)言快速實(shí)現(xiàn)一個(gè)網(wǎng)站或Web服務(wù),本期教程我們使用Python Flask搭建一個(gè)web問(wèn)答應(yīng)用程序框架,并結(jié)合cpolar內(nèi)網(wǎng)穿透工具將我們的應(yīng)用程序發(fā)布到公共網(wǎng)絡(luò)上,實(shí)現(xiàn)可多人遠(yuǎn)程進(jìn)入到該web應(yīng)用程序訪問(wèn),需要的朋友可以參考下

使用Python Flask搭建web問(wèn)答應(yīng)用程序框架,并發(fā)布到公網(wǎng)上訪問(wèn)

前言

Flask是一個(gè)Python編寫(xiě)的Web微框架,讓我們可以使用Python語(yǔ)言快速實(shí)現(xiàn)一個(gè)網(wǎng)站或Web服務(wù),本期教程我們使用Python Flask搭建一個(gè)web問(wèn)答應(yīng)用程序框架,并結(jié)合cpolar內(nèi)網(wǎng)穿透工具將我們的應(yīng)用程序發(fā)布到公共網(wǎng)絡(luò)上,實(shí)現(xiàn)可多人遠(yuǎn)程進(jìn)入到該web應(yīng)用程序訪問(wèn)。

在操作上我們將使用HTML來(lái)創(chuàng)建網(wǎng)頁(yè)的結(jié)構(gòu),然后使用css設(shè)計(jì)這個(gè)結(jié)構(gòu)并且使其看起來(lái)更漂亮,此外還會(huì)利用Javascript與頁(yè)面上的不同元素進(jìn)行交互,最后使用python與web服務(wù)器(也成為后端)進(jìn)行連接。

1. 安裝部署Flask并制作SayHello問(wèn)答界面

本篇文章代碼使用 Python3 運(yùn)行

安裝環(huán)境:需要在電腦上安裝 Python3 和 pip3。建議安裝最新版本

檢查是否有安裝了pip的可用Python,查看Python和pip版本:

C:> py --version
Python 3.N.N
C:> py -m pip --version
pip X.Y.Z from ... (python 3.N.N)

使用pip安裝和更新:

$ pip install -U Flask

創(chuàng)建環(huán)境:

conda create -n SAYHELLO python=3.10

激活環(huán)境:

conda activate SAYHELLO

創(chuàng)建項(xiàng)目目錄:

mkdir SAYHELLO

進(jìn)入到創(chuàng)建的目錄:

cd SAYHELLO

在當(dāng)前目錄啟動(dòng)VS Code:

code .

SAYHELLO文件夾下新建兩個(gè)附加文件夾,一個(gè)名為templates儲(chǔ)存html文件的位置,

另一個(gè)名為static文件夾,下面新建一個(gè)名為css的文件夾。

css文件夾下新建一個(gè)名為main.css的文件,

body {
    text-align: center;
    background-color: SlateGrey;
}
p {
    color: white;
    font-family: Shanti;
    font-size: 1.2em;
    display: inline-block;
    margin:  20px;
}
img {
    margin: 60px 0 30px 0;
    width: 250px;
}
input {
  width: 300px;
  margin: 20px 20px;
  height: 50px;
  border: none;
  border-radius: 10px;
  font-family: Shanti;
  font-size: 1.3em;
  text-align: center;
}
input:focus {
    outline: none;
    border: solid 5px #00FFCE;
}
#greet {
    background-color: PaleVioletRed;
    border:  none;
    width:  200px;
    color: white;
}
#greet:hover {
    background-color: MediumVioletRed;
}

templates文件夾里新建一個(gè)名為index.html的文件,

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Say Hello</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
</head>
<body>
    <img src="https://images.cpolar.com/img/202311271456089.png">
    <br>
    <form action="greet" method="post">
        {% for message in get_flashed_messages() %}
             <p>{{ message }}</p>
         {% endfor %}
        <br>
        <input type="text" name="name_input">
        <br>
        <input type="submit" value="GREET" id="greet">
    </form>
</body>
</html>

SAYHELLO文件下新建一個(gè)名為Procfile的文件,

web: gunicorn app:app

SAYHELLO文件下新建一個(gè)名為app.py的文件,

from flask import Flask, render_template, request, flash
app = Flask(__name__)
app.secret_key = "manbearpig_MUDMAN888"
@app.route("/")
def index():
	flash("what's your name?")
	return render_template("index.html")
@app.route("/greet", methods=['POST', 'GET'])
def greeter():
	flash("Hi " + str(request.form['name_input']) + ", great to see you!")
	return render_template("index.html")

SAYHELLO文件下新建一個(gè)名為requirements.txt的文件,

certifi==2021.5.30
click==7.1.2
Flask==1.1.2
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==2.0.1
Werkzeug==1.0.1
wincertstore==0.2

在TERMINAL里啟動(dòng)Flask

flask run

打開(kāi)一個(gè)新的瀏覽器,輸入http://127.0.0.1:5000,進(jìn)入到剛才制作的SAY Hello的打招呼界面。

可以看到剛才創(chuàng)建的問(wèn)題回答:what’s your name?

點(diǎn)擊GREET后,彈出:HI wang,greet to see you!

這樣我們使用Flask搭建的一個(gè)基本的帶有問(wèn)答形式的界面就搭建完成了,接下來(lái)我們要把這個(gè)問(wèn)答界面發(fā)布到公網(wǎng),分享給別人并且在web進(jìn)行前端與后端的互動(dòng)。

2. 安裝Cpolar內(nèi)網(wǎng)穿透

上面在本地成功部署了Flask,并局域網(wǎng)訪問(wèn)成功,下面我們安裝Cpolar內(nèi)網(wǎng)穿透工具,通過(guò)cpolar 轉(zhuǎn)發(fā)本地端口映射的http公網(wǎng)地址,我們可以很容易實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),而無(wú)需自己注冊(cè)域名購(gòu)買(mǎi)云服務(wù)器.下面是安裝步驟:

cpolar官網(wǎng)地址: https://www.cpolar.com

使用一鍵腳本安裝命令

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

向系統(tǒng)添加服務(wù)

sudo systemctl enable cpolar

啟動(dòng)cpolar服務(wù)

sudo systemctl start cpolar

cpolar安裝成功后,在外部瀏覽器上訪問(wèn)9200端口 即:【http://局域網(wǎng)ip:9200】,使用cpolar賬號(hào)登錄(如沒(méi)有賬號(hào),可以點(diǎn)擊下面免費(fèi)注冊(cè)),登錄后即可看到cpolar web 配置界面,結(jié)下來(lái)在web 管理界面配置即可

3. 配置Flask的問(wèn)答界面公網(wǎng)訪問(wèn)地址

點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——創(chuàng)建隧道,創(chuàng)建一個(gè)Flask的cpolar公網(wǎng)地址隧道:

  • 隧道名稱(chēng):可自定義命名,注意不要與已有的隧道名稱(chēng)重復(fù)
  • 協(xié)議:選擇http
  • 本地地址:5000 (局域網(wǎng)訪問(wèn)的端口)
  • 域名類(lèi)型:免費(fèi)選擇隨機(jī)域名
  • 地區(qū):選擇China Top
  • 點(diǎn)擊創(chuàng)建

隧道創(chuàng)建成功后,點(diǎn)擊左側(cè)的狀態(tài)——在線隧道列表,查看所生成的公網(wǎng)訪問(wèn)地址,有兩種訪問(wèn)方式,一種是http 和https

4. 公網(wǎng)遠(yuǎn)程訪問(wèn)Flask的問(wèn)答界面

使用上面的cpolar https公網(wǎng)地址在任意設(shè)備的瀏覽器訪問(wèn),即可成功看到Flask的web界面,這樣一個(gè)公網(wǎng)地址且可以遠(yuǎn)程訪問(wèn)就創(chuàng)建好了,無(wú)需自己購(gòu)買(mǎi)云服務(wù)器,即可發(fā)布到公網(wǎng)訪問(wèn)。

由于以上使用cpolar所創(chuàng)建的隧道使用的是隨機(jī)公網(wǎng)地址,24小時(shí)內(nèi)會(huì)隨機(jī)變化,不利于長(zhǎng)期遠(yuǎn)程訪問(wèn)。

我一般會(huì)使用固定二級(jí)子域名,因?yàn)槲蚁M麑⒕W(wǎng)址發(fā)送給別人進(jìn)行問(wèn)卷調(diào)查時(shí)候,就可以直接使用固定的公網(wǎng)地址進(jìn)行填寫(xiě)了。它是一個(gè)固定、易記的公網(wǎng)地址(例如:SayHello.cpolar.cn)因此我們可以為其配置二級(jí)子域名,該地址為固定地址,不會(huì)隨機(jī)變化【ps:cpolar.cn已備案】

注意需要將cpolar套餐升級(jí)至基礎(chǔ)套餐或以上,且每個(gè)套餐對(duì)應(yīng)的帶寬不一樣?!綾polar.cn已備案】

登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,選擇保留二級(jí)子域名,設(shè)置一個(gè)二級(jí)子域名名稱(chēng),點(diǎn)擊保留,保留成功后復(fù)制保留的二級(jí)子域名名稱(chēng)。

保留成功后復(fù)制保留成功的二級(jí)子域名的名稱(chēng)

返回登錄cpolar web UI管理界面,點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——隧道列表,找到所要配置的隧道,點(diǎn)擊右側(cè)的編輯

image-20231127161016574

修改隧道信息,將保留成功的二級(jí)子域名配置到隧道中

  • 域名類(lèi)型:選擇二級(jí)子域名
  • Sub Domain:填寫(xiě)保留成功的二級(jí)子域名

點(diǎn)擊更新(注意,點(diǎn)擊一次更新即可,不需要重復(fù)提交)

更新完成后,打開(kāi)在線隧道列表,此時(shí)可以看到公網(wǎng)地址已經(jīng)發(fā)生變化,地址名稱(chēng)也變成了固定的二級(jí)子域名名稱(chēng)的域名

最后,我們使用固定的公網(wǎng)地址訪問(wèn),可以看到訪問(wèn)成功,這樣一個(gè)固定且永久不變的公網(wǎng)地址就設(shè)置好了。

配置到隧道中

  • 域名類(lèi)型:選擇二級(jí)子域名
  • Sub Domain:填寫(xiě)保留成功的二級(jí)子域名

:填寫(xiě)保留成功的二級(jí)子域名

點(diǎn)擊更新(注意,點(diǎn)擊一次更新即可,不需要重復(fù)提交)

更新完成后,打開(kāi)在線隧道列表,此時(shí)可以看到公網(wǎng)地址已經(jīng)發(fā)生變化,地址名稱(chēng)也變成了固定的二級(jí)子域名名稱(chēng)的域名

最后,我們使用固定的公網(wǎng)地址訪問(wèn),可以看到訪問(wèn)成功,這樣一個(gè)固定且永久不變的公網(wǎng)地址就設(shè)置好了。

到此這篇關(guān)于本地部署Python Flask并搭建web問(wèn)答應(yīng)用程序框架實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)的文章就介紹到這了,更多相關(guān)本地部署Python Flask內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于plotly模塊實(shí)現(xiàn)的畫(huà)圖操作示例

    Python基于plotly模塊實(shí)現(xiàn)的畫(huà)圖操作示例

    這篇文章主要介紹了Python基于plotly模塊實(shí)現(xiàn)的畫(huà)圖操作,涉及Python基于plotly模塊的數(shù)值運(yùn)算與圖形操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-01-01
  • Pytorch平均池化nn.AvgPool2d()使用方法實(shí)例

    Pytorch平均池化nn.AvgPool2d()使用方法實(shí)例

    平均池化層,又叫平均匯聚層,下面這篇文章主要給大家介紹了關(guān)于Pytorch平均池化nn.AvgPool2d()使用方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python對(duì)excel文檔的操作方法詳解

    Python對(duì)excel文檔的操作方法詳解

    這篇文章主要介紹了Python對(duì)excel文檔的操作方法,結(jié)合實(shí)例形式分析了Python基于xlrd、xlwd庫(kù)針對(duì)Excel文件的讀寫(xiě)、sheet表創(chuàng)建、獲取、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • 在k8s上部署pytorch分布式程序的完整步驟記錄

    在k8s上部署pytorch分布式程序的完整步驟記錄

    Kubernetes的核心優(yōu)勢(shì)在于其能夠提供一個(gè)可擴(kuò)展、靈活且高度可配置的平臺(tái),使得應(yīng)用程序的部署、擴(kuò)展和管理變得前所未有的簡(jiǎn)單下面這篇文章主要給大家介紹了關(guān)于在k8s上部署pytorch分布式程序的完整步驟,需要的朋友可以參考下
    2024-08-08
  • python爬蟲(chóng)之遍歷單個(gè)域名

    python爬蟲(chóng)之遍歷單個(gè)域名

    在本篇文章里小編給大家整理的是一篇關(guān)于python遍歷單個(gè)域名的知識(shí)點(diǎn)和操作方法,有需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • python爬蟲(chóng) requests-html的使用

    python爬蟲(chóng) requests-html的使用

    這篇文章主要介紹了python爬蟲(chóng) requests-html的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)高階用法

    Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)高階用法

    網(wǎng)絡(luò)爬蟲(chóng)成為了自動(dòng)化數(shù)據(jù)抓取的核心工具,Python?擁有強(qiáng)大的第三方庫(kù)支持,在網(wǎng)絡(luò)爬蟲(chóng)領(lǐng)域的應(yīng)用尤為廣泛,本文將深入探討?Python?網(wǎng)絡(luò)爬蟲(chóng)的高階用法,包括處理反爬蟲(chóng)機(jī)制、動(dòng)態(tài)網(wǎng)頁(yè)抓取、分布式爬蟲(chóng)以及并發(fā)和異步爬蟲(chóng)等技術(shù),幫助讀者掌握高級(jí)Python爬蟲(chóng)技術(shù)
    2024-12-12
  • pyqt5數(shù)據(jù)庫(kù)使用詳細(xì)教程(打包解決方案)

    pyqt5數(shù)據(jù)庫(kù)使用詳細(xì)教程(打包解決方案)

    這篇文章主要介紹了pyqt5數(shù)據(jù)庫(kù)使用教程(打包解決方案),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python序列之list和tuple常用方法以及注意事項(xiàng)

    Python序列之list和tuple常用方法以及注意事項(xiàng)

    這篇文章主要介紹了Python序列之list和tuple常用方法以及注意事項(xiàng),sequence(序列)是一組有順序的對(duì)象的集合,序列可以包含一個(gè)或多個(gè)元素,也可以沒(méi)有任何元素,序列有兩種:list (表) 和 tuple(元組),需要的朋友可以參考下
    2015-01-01
  • Python實(shí)現(xiàn)對(duì)桌面進(jìn)行實(shí)時(shí)捕捉畫(huà)面的方法詳解

    Python實(shí)現(xiàn)對(duì)桌面進(jìn)行實(shí)時(shí)捕捉畫(huà)面的方法詳解

    最近在研究目標(biāo)檢測(cè)方面的小東西,需要到對(duì)桌面進(jìn)行實(shí)時(shí)捕捉畫(huà)面。所以本文來(lái)用Python實(shí)現(xiàn)簡(jiǎn)單的對(duì)桌面進(jìn)行實(shí)時(shí)捕捉畫(huà)面,感興趣的可以了解一下
    2023-01-01

最新評(píng)論