金年会

每日经济新闻
要闻

每经网首页 > 要闻 > 正文

flask部署从17c开始将flask网页部署再github上-csdn博客1

陈一平 2025-11-01 21:08:08

每经编辑|陈芷妃    

当地时间2025-11-01,gfyuweutrbhedguifhkstebtj,公交系列短文300字

Flask网页部署(shu)到GitHub:你(ni)的代(dai)码(ma),全球可(ke)见的(de)舞台(tai)!

想象一下,你(ni)辛辛(xin)苦(ku)苦(ku)用Flask搭(da)建(jian)的精彩(cai)网页(ye),无(wu)论是炫酷的数(shu)据可视化(hua),还(hai)是实用(yong)的在线(xian)工(gong)具,又或者是(shi)你充满(man)创(chuang)意(yi)的(de)个人(ren)作(zuo)品集,都只能(neng)在(zai)你自己的电脑上(shang)闪(shan)耀,是(shi)不是(shi)觉(jue)得(de)有(you)点(dian)“养在(zai)深(shen)闺(gui)人(ren)未(wei)识(shi)”的(de)遗憾?别担(dan)心,今天,我们就来为(wei)你打开一扇(shan)通(tong)往世界(jie)的(de)大门(men)——将你的Flask网(wang)页(ye)部(bu)署到GitHub上(shang),让你(ni)的(de)代码拥有一个全(quan)球可见(jian)的舞(wu)台,让你的才华(hua)被更(geng)多人(ren)看(kan)见(jian)!

从17c开(kai)始(shi),Flask部署的(de)基石(shi)

很多(duo)开发(fa)者(zhe)在接触(chu)Flask部署时,可能(neng)会(hui)被各(ge)种配(pei)置(zhi)和环境问(wen)题搞(gao)得头(tou)晕(yun)目眩。特(te)别(bie)是当(dang)我们(men)谈论到将(jiang)动(dong)态(tai)的Flask应(ying)用部署到GitHubPages这种(zhong)通常(chang)以(yi)托(tuo)管静态网(wang)站为(wei)主的平(ping)台(tai)时(shi),常常会(hui)遇到一些误区。但请(qing)记住,GitHubPages的(de)强大之处在(zai)于它不仅(jin)仅(jin)能(neng)托(tuo)管静态(tai)内容(rong),通过一些(xie)巧妙的配(pei)置,我(wo)们也(ye)能(neng)将Flask应用(yong)的“动态”魅力延伸到这(zhe)个(ge)平台(tai)上。

1.为(wei)什么选择(ze)GitHubPages?

GitHubPages,这个由GitHub提(ti)供的(de)免(mian)费(fei)静态(tai)网站(zhan)托(tuo)管服务(wu),早已(yi)成(cheng)为(wei)开发者(zhe)展示项(xiang)目、搭(da)建个(ge)人(ren)博客(ke)的(de)首选(xuan)。它稳定、免费(fei)、集(ji)成度高(gao),与(yu)GitHub仓(cang)库(ku)紧(jin)密结(jie)合(he),你只(zhi)需(xu)要(yao)将你(ni)的项(xiang)目(mu)代(dai)码推送到(dao)特定的分支(zhi),GitHub就(jiu)会自(zi)动(dong)为(wei)你构建和部署(shu)网站。

对于(yu)Flask开发者来(lai)说,虽(sui)然Flask本(ben)身是动态(tai)的(de),但我(wo)们(men)可以(yi)利用(yong)GitHubPages的优势,将(jiang)其与静态(tai)托管结合(he),或者(zhe)将(jiang)Flask应(ying)用的(de)核心(xin)逻(luo)辑部署到其他服(fu)务器,而将前端界(jie)面(mian)或静态资(zi)源托管在(zai)GitHubPages上,实(shi)现一种优(you)雅的混(hun)合(he)部(bu)署(shu)。

2.Flask的“动态(tai)”与(yu)GitHubPages的“静(jing)态”:一次美(mei)妙的(de)邂逅

很(hen)多人认为(wei)Flask应用是(shi)纯动(dong)态的,无法直接(jie)部(bu)署到GitHubPages。这确实是(shi)一个(ge)需(xu)要澄清的(de)观(guan)点(dian)。GitHubPages主(zhu)要(yao)设计(ji)用(yong)来托管(guan)静态文(wen)件(jian),如HTML、CSS、JavaScript、图(tu)片等。而(er)Flask是(shi)一(yi)个(ge)PythonWeb框架(jia),其(qi)核心(xin)在(zai)于处(chu)理(li)HTTP请(qing)求、与数(shu)据(ju)库交(jiao)互、渲染动(dong)态(tai)模(mo)板等。

如何(he)让它(ta)们“在(zai)一起”呢(ne)?这(zhe)里(li)有几种常(chang)见的思(si)路(lu):

静(jing)态化前端(duan):将Flask应(ying)用渲染出(chu)来的(de)HTML、CSS、JS等(deng)静(jing)态资(zi)源提取(qu)出(chu)来,然(ran)后(hou)将(jiang)这(zhe)些(xie)静态资源直接托管(guan)到GitHubPages。这样(yang),GitHubPages就(jiu)可以直接(jie)展示(shi)你(ni)的(de)网页(ye)前(qian)端。这对于展(zhan)示你(ni)的Flask应用(yong)的UI/UX效果非常有(you)帮(bang)助。

API服务+GitHubPages:将(jiang)Flask应用(yong)作为(wei)后端(duan)API服务部(bu)署(shu)到(dao)另(ling)一台服务器(如(ru)Heroku、AWS、Vercel等),而将前端界(jie)面(mian)(可(ke)以(yi)使用React、Vue等框(kuang)架(jia)或(huo)者纯HTML/CSS/JS)部(bu)署到GitHubPages。

GitHubPages负(fu)责展示用户界面,当用(yong)户与(yu)界面交互(hu)时,前端通过API请(qing)求调(diao)用你(ni)的Flask后端服(fu)务。这种(zhong)方(fang)式非常适合构(gou)建前(qian)后(hou)端分离(li)的应(ying)用。Jekyll/Hugo等(deng)静态网(wang)站(zhan)生成(cheng)器:如(ru)果你的(de)Flask应(ying)用主要是(shi)为(wei)了(le)生成(cheng)一些内容(rong),可以(yi)考虑使用(yong)Jekyll、Hugo等(deng)静(jing)态网站生成器(qi),它们(men)可(ke)以从Markdown等(deng)源文件生成静态HTML。

然后,将这些(xie)静态生(sheng)成的网(wang)站托(tuo)管到(dao)GitHubPages。虽(sui)然(ran)这不直接是Flask应(ying)用本(ben)身,但可(ke)以达(da)到展示类似(shi)内容(rong)的网络页(ye)面(mian)的目(mu)的(de)。

3.准(zhun)备(bei)你的Flask项(xiang)目:从17c的(de)视角审视

无论(lun)你使用的是哪(na)个版(ban)本的(de)Flask,基本的项目结构和(he)部署(shu)逻辑(ji)是相似的(de)。我(wo)们(men)以一(yi)个简(jian)单(dan)的(de)Flask应用为例(li),假设(she)你的(de)项目结构(gou)如下(xia):

my_flask_app/├──app.py├──templates/│└──index.html├──static/│├──css/││└──style.css│└──js/│└──script.js└──requirements.txt

在app.py中(zhong),你的Flask应(ying)用(yong)可能看起来像(xiang)这(zhe)样:

fromflaskimportFlask,render_templateapp=Flask(__name__)@app.route('/')defindex():returnrender_template('index.html')if__name__=='__main__':app.run(debug=True)

在(zai)templates/index.html中,你(ni)可(ke)以有基本(ben)的HTML结(jie)构。

在static文(wen)件夹中(zhong),放置你(ni)的(de)CSS和JavaScript文件。

别(bie)忘了requirements.txt文件,它(ta)列(lie)出(chu)了你的项目(mu)所依赖(lai)的所有(you)Python包。你(ni)可以通过pipfreeze>requirements.txt命(ming)令来(lai)生(sheng)成它。

4.Git和GitHub:部(bu)署的(de)“指(zhi)挥官”

在(zai)开始(shi)部署之(zhi)前,确(que)保(bao)你的(de)电(dian)脑上已(yi)经(jing)安(an)装了(le)Git,并(bing)且(qie)你有(you)一(yi)个(ge)GitHub账号(hao)。

初始化Git仓库(ku):进(jin)入你的项目根(gen)目录(lu),运(yun)行(xing)gitinit。添加文件:gitadd.提(ti)交代码(ma):gitcommit-m"Initialcommit"创建(jian)GitHub仓库(ku):登录GitHub,创(chuang)建(jian)一个新的(de)仓库,例(li)如(ru)命名(ming)为my-flask-project。

关联本(ben)地与远(yuan)程仓库(ku):按(an)照(zhao)GitHub提供的指令,将你(ni)的本(ben)地仓(cang)库与远程GitHub仓库关(guan)联,通常(chang)是gitremoteaddorigin<你的(de)仓库URL>。推(tui)送(song)代(dai)码:gitpush-uoriginmain(或者master分支,取(qu)决(jue)于你的(de)默认分(fen)支名(ming))。

至此,你的(de)Flask项(xiang)目代码已经(jing)成功(gong)上传(chuan)到(dao)了GitHub。这只是第一步(bu),但却是所有(you)部(bu)署的(de)基础。接下(xia)来的Part2,我(wo)们(men)将深入探讨如何利用GitHubPages来托(tuo)管你的Flask应(ying)用(yong)的静态部(bu)分,以(yi)及如何处理动态请求(qiu)的(de)策略。

准备好了(le)吗?让(rang)我(wo)们(men)一起(qi)解锁Flask部署的更(geng)多可能!

Flask网(wang)页部(bu)署(shu)到(dao)GitHub:让(rang)你(ni)的代码(ma),不(bu)止于(yu)此!

在(zai)Part1中,我们(men)已经(jing)成(cheng)功地将(jiang)Flask项目的(de)代码上(shang)传到了(le)GitHub,并为即(ji)将(jiang)进行(xing)的部(bu)署打(da)下了坚(jian)实(shi)的(de)基础。现在(zai),让我们继续(xu)深入,探索如(ru)何(he)利用GitHubPages的(de)强(qiang)大功能,将(jiang)你(ni)的Flask应用(yong)的静(jing)态部(bu)分“搬(ban)”上去,并为你未(wei)来的(de)动态交(jiao)互(hu)铺平(ping)道路。

这次,我们将聚(ju)焦于(yu)实际(ji)操作,让你(ni)能够(gou)一(yi)步步(bu)地(di)实(shi)现(xian)你的网页(ye)部署目(mu)标(biao)。

5.拥抱(bao)GitHubPages:静态文件的(de)“新(xin)家”

正如之(zhi)前提到(dao)的,GitHubPages的核心是(shi)托管静态文件。这意(yi)味着(zhe),如果你的Flask应用(yong)有(you)一(yi)个非(fei)常(chang)漂亮(liang)的(de)静态(tai)前端(duan),你可(ke)以直(zhi)接(jie)将其(qi)部(bu)署到(dao)GitHubPages。

场(chang)景一(yi):将Flask应(ying)用(yong)的前端静(jing)态化(hua)部署(shu)到GitHubPages

这(zhe)种(zhong)方(fang)法(fa)的核心(xin)是(shi)将(jiang)Flask应(ying)用(yong)渲染(ran)出的(de)HTML、CSS、JavaScript文件“导出(chu)”为(wei)静态(tai)文(wen)件,然(ran)后(hou)上传(chuan)到GitHub。

生成(cheng)静(jing)态文件(jian):这通(tong)常(chang)需要一(yi)个脚(jiao)本来模(mo)拟(ni)Flask的路(lu)由,访(fang)问每(mei)个(ge)页(ye)面,然(ran)后将生成的(de)HTML、CSS、JS等(deng)文件保存(cun)到指定(ding)的(de)目录(lu)(例如(ru)_site或(huo)public)。你(ni)可以(yi)编写一(yi)个Python脚本(ben),使用(yong)requests库来请求(qiu)你的本地Flask服务(wu)器,然(ran)后保存响(xiang)应内容(rong)。

例(li)如,如(ru)果你(ni)有(you)一个(ge)/about路(lu)由(you),你可(ke)以(yi)用脚(jiao)本访问http://127.0.0.1:5000/about并将返(fan)回的HTML保(bao)存(cun)。配置(zhi)GitHubPages:在你的GitHub仓库中(zhong),进入"Settings"->"Pages"。

在"Source"部(bu)分,选择一(yi)个(ge)分支来(lai)部(bu)署你的网站。通常(chang),你(ni)可以创(chuang)建一个新(xin)的分(fen)支,例如(ru)gh-pages,专门(men)用(yong)于存(cun)放部署的(de)静(jing)态文件。将你(ni)生成(cheng)的(de)静(jing)态(tai)文(wen)件(HTML、CSS、JS等)添加(jia)到gh-pages分(fen)支,并(bing)提交(jiao)推送。GitHubPages会自(zi)动(dong)检(jian)测并(bing)部(bu)署gh-pages分(fen)支上的(de)内容(rong)。

稍等片刻(ke),你就可以通过https://yourusername.github.io/your-repo-name/访问(wen)你(ni)的(de)静态网(wang)页了(le)!

场景二(er):前后端分(fen)离部(bu)署方案

这(zhe)是目(mu)前最(zui)主流也是(shi)最推(tui)荐(jian)的部署(shu)方式,尤其是对(dui)于功能相对复(fu)杂的(de)Flask应(ying)用。

Flask作(zuo)为(wei)API后端:

选(xuan)择(ze)一个(ge)PaaS平台:部署(shu)动态(tai)的(de)Flask应(ying)用(yong),你需要(yao)一个(ge)能够(gou)运行(xing)Python的服务器环境(jing)。Heroku、Vercel、AWSElasticBeanstalk、GoogleAppEngine等都(dou)是不错的(de)选择。项目(mu)配置:在你的Flask项目根(gen)目录添加一(yi)个Procfile文件(jian)(无(wu)扩展名(ming)),告(gao)诉PaaS平台(tai)如何启动(dong)你(ni)的应用(yong)。

例如,对(dui)于(yu)Gunicorn:web:gunicornapp:app(其中(zhong)app:app指的(de)是(shi)app.py文件(jian)中(zhong)的Flask应用实例app)确(que)保你的(de)requirements.txt文(wen)件包含了flask和(he)gunicorn(或你选(xuan)择的(de)WSGI服务(wu)器)。

部(bu)署到(dao)PaaS平台(tai):按照(zhao)你选(xuan)择(ze)的PaaS平台(tai)的文(wen)档,将你的(de)Flask项目(mu)部署上去(qu)。通常(chang),你可(ke)以(yi)通(tong)过Gitpush的(de)方(fang)式来部(bu)署。

前端(duan)部署到(dao)GitHubPages:

构建静(jing)态(tai)前端(duan):如果你使用的(de)是React、Vue、Angular等(deng)前端框(kuang)架(jia),使用它们的构(gou)建工具(ju)(如npmrunbuild)生(sheng)成(cheng)静态的HTML、CSS、JS文(wen)件。

设(she)置(zhi)GitHubPages:按照场景一(yi)的方法(fa),将这些(xie)静态文件(jian)部署(shu)到GitHubPages。

配置(zhi)跨(kua)域(yu)请(qing)求(CORS):你(ni)的(de)前(qian)端JavaScript代(dai)码(ma)会向你(ni)的FlaskAPI发送请求(qiu)。由于(yu)前端部署在(zai)GitHubPages(另一(yi)个域(yu)名(ming)),而FlaskAPI部(bu)署在PaaS平台(又(you)一(yi)个(ge)域名),浏览(lan)器会(hui)触发CORS(跨域资源(yuan)共享)策(ce)略。

你需(xu)要在你(ni)的(de)Flask应用(yong)中配置(zhi)CORS,允许来(lai)自GitHubPages的请(qing)求。可以(yi)使(shi)用flask-cors库:

pipinstallFlask-Cors

在(zai)app.py中:

fromflaskimportFlaskfromflask_corsimportCORSapp=Flask(__name__)CORS(app)#允(yun)许所有域(yu)名的(de)跨域请(qing)求(qiu),生(sheng)产(chan)环境中请(qing)配置更严格的(de)规则(ze)@app.route('/')defindex():return"HellofromFlaskAPI!"if__name__=='__main__':app.run(debug=True)

6.总结与展望(wang):让(rang)你(ni)的(de)Flask作品,闪耀(yao)互联网!

将(jiang)Flask网页(ye)部署(shu)到GitHub,无(wu)论你(ni)是将其前(qian)端(duan)静(jing)态(tai)化(hua)托管(guan),还是将其作(zuo)为API服(fu)务(wu)与GitHubPages的(de)前(qian)端分离(li)部署,都能(neng)够极大地提升你的(de)项(xiang)目可见(jian)度和(he)影响(xiang)力(li)。

GitHubPages的优势(shi):免(mian)费、稳定、易于(yu)使用,是展示个人项目(mu)、作(zuo)品(pin)集、技术(shu)博客(ke)的绝(jue)佳平台。Flask的(de)灵活(huo)性:强大的Web框架(jia),能够(gou)支(zhi)撑各种(zhong)复(fu)杂(za)的(de)后端逻(luo)辑。前后(hou)端(duan)分(fen)离(li):现(xian)代Web开(kai)发的主(zhu)流模式(shi),能够实现更(geng)好的(de)解耦和可维(wei)护(hu)性。

从(cong)17c版本(ben)开始(shi),Flask社区(qu)一(yi)直(zhi)在(zai)蓬勃发(fa)展,涌现了大(da)量(liang)优秀的工(gong)具和最佳(jia)实(shi)践(jian)。掌握Flask的部(bu)署技(ji)巧,意(yi)味着你(ni)不仅能(neng)够写出优雅(ya)的(de)代码(ma),更能(neng)将你(ni)的(de)想(xiang)法变为触(chu)手可及的在线(xian)应用。

你(ni)的代码(ma),值得(de)拥有(you)一(yi)个(ge)属于(yu)自(zi)己(ji)的(de)在(zai)线(xian)舞(wu)台。通(tong)过GitHubPages,你(ni)可以轻松(song)地分享(xiang)你的Flask作品,吸(xi)引(yin)潜在(zai)的(de)雇主(zhu),与同行交流,甚至为(wei)你(ni)的开源项目吸引贡(gong)献(xian)者。

现在,就动(dong)手(shou)尝试吧(ba)!选择一(yi)个(ge)最适合你的(de)部署(shu)方案,让你(ni)的Flask网(wang)页,从(cong)本地(di)的寂静,飞入互(hu)联网的(de)喧嚣(xiao),被(bei)世(shi)界(jie)看见(jian)!CSDN博客(ke)也期待(dai)着(zhe)你的部署(shu)经(jing)验(yan)分享!

2025-11-01,sa国际传媒商业发布会,中科曙光大宗交易成交1379.20万元

1.色鬼app115,瑞银:升香港电讯-SS目标价至13.4港元 中期EBITDA符预期大片ppt免费30分钟哩哩,双巨头联手!中国电信与阿里巴巴共建云AI生态,赋能产业升级与企业出海

图片来源:每经记者 陈崇韧 摄

2.张筱雨魅惑四十张+pr九尾天狐正能量版免费破解版最近发布,省级港口资源整合再下一城:厦门港务62亿元收购母公司核心资产

3.Tube 国产AV网站+大雷牛奶图片真实,科技赋能产业,同绘发展新篇——合肥市科技局领导莅临联合水务开展招商座谈

十大B站直播入口+顶级魅魔舞蹈视频,8月14日吉大正元发布公告,股东减持107.6万股

池州市人民医院

封面图片来源:图片来源:每经记者 名称 摄

如需转载请与《每日经济新闻》报社联系。
未经《每日经济新闻》报社授权,严禁转载或镜像,违者必究。

读者热线:4008890008

特别提醒:如果我们使用了您的图片,请作者与本站联系索取稿酬。如您不希望作品出现在本站,可联系金年会要求撤下您的作品。

欢迎关注每日经济新闻APP

每经经济新闻官方APP

0

0

Sitemap