国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】

這篇具有很好參考價(jià)值的文章主要介紹了(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

每篇前言:

  • ????作者介紹:【孤寒者】—CSDN全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、HDZ核心組成員、華為云享專家Python全棧領(lǐng)域博主、CSDN原力計(jì)劃作者

  • ????本文已收錄于Flask框架從入門到實(shí)戰(zhàn)專欄:《Flask框架從入門到實(shí)戰(zhàn)》
  • ????熱門專欄推薦:《Python全棧系列教程》、《爬蟲從入門到精通系列教程》、《爬蟲進(jìn)階+實(shí)戰(zhàn)系列教程》、《Scrapy框架從入門到實(shí)戰(zhàn)》、《Flask框架從入門到實(shí)戰(zhàn)》、《Django框架從入門到實(shí)戰(zhàn)》、《Tornado框架從入門到實(shí)戰(zhàn)》、《前端系列教程》。
  • ?????本專欄面向廣大程序猿,為的是大家都做到Python全棧技術(shù)從入門到精通,穿插有很多實(shí)戰(zhàn)優(yōu)化點(diǎn)。
  • ????訂閱專欄后可私聊進(jìn)一千多人Python全棧交流群(手把手教學(xué),問題解答); 進(jìn)群可領(lǐng)取Python全棧教程視頻 + 多得數(shù)不過來的計(jì)算機(jī)書籍:基礎(chǔ)、Web、爬蟲、數(shù)據(jù)分析、可視化、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、人工智能、算法、面試題等。
  • ????加入我一起學(xué)習(xí)進(jìn)步,一個(gè)人可以走的很快,一群人才能走的更遠(yuǎn)!

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

MTV&MVC

先來講一下兩種常見的軟件架構(gòu)模式——MTV和MVC~

它倆是用于組織和管理應(yīng)用程序的不同組件和邏輯。通常用于開發(fā)Web應(yīng)用程序和其他軟件項(xiàng)目。

  1. MTV(Model-Template-View):
    • Model(模型):表示應(yīng)用程序的數(shù)據(jù)和業(yè)務(wù)邏輯。它負(fù)責(zé)管理數(shù)據(jù)的存儲(chǔ)、檢索和處理,以及處理與數(shù)據(jù)相關(guān)的操作。
    • Template(模板):定義了應(yīng)用程序用戶界面的外觀和結(jié)構(gòu),通常使用模板語言編寫,將動(dòng)態(tài)數(shù)據(jù)插入靜態(tài)頁面中。
    • View(視圖):表示用戶界面的邏輯部分,它從模型中獲取數(shù)據(jù)并將其呈現(xiàn)到模板中,然后將結(jié)果發(fā)送給用戶的瀏覽器。視圖還可以處理用戶的輸入和用戶界面的交互。

MTV模式是Django Web框架的一部分(但是這個(gè)模式也非常適合Flask),其中Model對(duì)應(yīng)于數(shù)據(jù)模型,Template對(duì)應(yīng)于模板文件,View對(duì)應(yīng)于視圖函數(shù),這些組合在一起用于構(gòu)建Web應(yīng)用程序。

  1. MVC(Model-View-Controller):
    • Model(模型):與MTV中的模型類似,負(fù)責(zé)應(yīng)用程序的數(shù)據(jù)和業(yè)務(wù)邏輯。它處理數(shù)據(jù)的存儲(chǔ)、檢索和處理。
    • View(視圖):與MTV中的視圖有些不同,它表示應(yīng)用程序的用戶界面,但不直接與模板相關(guān)。視圖接收用戶輸入,處理它并與模型進(jìn)行通信以更新數(shù)據(jù)。
    • Controller(控制器):控制器是MVC的核心,它負(fù)責(zé)接收用戶輸入并根據(jù)輸入調(diào)度視圖和模型的操作。它決定如何響應(yīng)用戶的請(qǐng)求,并確保模型和視圖之間的協(xié)同工作。

MVC模式通常在框架如Spring、Ruby on Rails等中使用,它的核心思想是分離數(shù)據(jù)處理、用戶界面和控制流,以提高代碼的可維護(hù)性和可擴(kuò)展性。控制器充當(dāng)用戶輸入的處理中心,調(diào)度模型和視圖以完成所需的操作。

總的來說,MTV和MVC都是用于組織和管理應(yīng)用程序代碼的模式,它們有不同的實(shí)現(xiàn)方式,但目標(biāo)都是分離關(guān)注點(diǎn),以提高代碼的可讀性和可維護(hù)性。

一一對(duì)應(yīng):

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

Flask如果采用MVC架構(gòu)的話,項(xiàng)目結(jié)構(gòu)demo:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

但是推薦在Flask中使用MTV架構(gòu)模式,而且Flask中主流也是用這個(gè):

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

構(gòu)建一個(gè)基于MTV模式的Demo項(xiàng)目:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

  • login.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>用戶登錄</title>
    </head>
    <body>
    <form action="" method="post">
        <input type="text" name="user">
        <input type="text" name="pwd">
        <input type="submit" value="提交">{{msg}}
    </form>
    </body>
    </html>
    
  • account.py:

    from flask import Blueprint, render_template, request, session, redirect
    from uuid import uuid4
    
    account = Blueprint('account', __name__)
    
    
    @account.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'GET':
            return render_template('login.html')
        user = request.form.get('user')
        pwd = request.form.get('pwd')
        if user == 'GuHanZhe' and pwd == '123':
            uid = str(uuid4())
            session['user_info'] = {'id': uid, 'name': user}
            return redirect('/index')
        else:
            return render_template('login.html', msg='用戶名獲或密碼錯(cuò)誤')
    
    
  • home.py:

    from flask import Blueprint, session
    
    home = Blueprint('home', __name__)
    
    
    @home.route('/index')
    def index():
        user_info = session.get('user_info')
        print(user_info)
    
        return 'Index'
    
    
    @home.route('/test')
    def test():
        return 'Test'
    
    
  • __init__.py:

    from flask import Flask
    from .views import account
    from .views import home
    
    
    def create_app():
        app = Flask(__name__)
        app.config.from_object('settings.DevelopmentConfig')
    
        app.register_blueprint(account.account)
        app.register_blueprint(home.home)
    
        return app
    
    
  • manage.py:

    from flask_stru import create_app
    app = create_app()
    
    
    if __name__ == '__main__':
        app.run()
    
    
  • settings.py:

    class Config(object):
        DEBUG = True
        SECRET_KEY = 'GuHanZheIsCool'
    
    
    class ProductionConfig(Config):
        pass
    
    
    class DevelopmentConfig(Config):
        pass
    
    
    class TestingConfig(Config):
        pass
    
    

運(yùn)行manage.py文件,訪問login登錄(登錄成功的話):

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

來看下源碼,看看默認(rèn)cookie過期時(shí)間是多久:

from flask.sessions import SecureCookieSessionInterface

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

可以看到注釋中表示這個(gè)值默認(rèn)是31天~而且我們可以設(shè)置這個(gè)值:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

而這個(gè)參數(shù)生效的前提是session.permanent為True(默認(rèn)就是為True);

如果設(shè)置為False,則關(guān)閉瀏覽器cookie就失效。

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

再看看源碼設(shè)置cookie的(save_session)上面這一部分:

如果if成立就直接返回,客戶端就不會(huì)存cookie了!
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

蹦出一個(gè)問題:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

訪問index接口是正常的,name修改成功:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

但是如果訪問test接口的話,就不正常了:
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

很容易想到,這個(gè)問題的原因是因?yàn)閏ookie修改后沒有保存!

拋出答案,這是因?yàn)樾薷腸ookie的話,默認(rèn)只有當(dāng)?shù)谝粚有薷牟艜?huì)保存,而第二層、第三層等…都不會(huì)保存。

{
	user_info: {k1: 1, k2: 2}
}

如果是第一層被修改會(huì)保存:
{
	user_info: {k1: 1, k2: 2},
	xxx :{'A': 5}
}
但是如果是第二層,第三層...修改不會(huì)保存:
{
	user_info: {k1: 1, k2: 2, k3: 3}
}

看源碼分析這種問題的點(diǎn)源于何處:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

斗膽翻譯一下第一個(gè)箭頭所指變量對(duì)應(yīng)的注釋部分:

“當(dāng)數(shù)據(jù)發(fā)生變化時(shí),將此標(biāo)志設(shè)置為True。僅跟蹤會(huì)話字典本身;如果會(huì)話包含可變數(shù)據(jù)(例如嵌套的字典),則在修改該數(shù)據(jù)時(shí)必須手動(dòng)將此標(biāo)志設(shè)置為True。僅當(dāng)此標(biāo)志為True時(shí),會(huì)話cookie才會(huì)寫入響應(yīng)中?!?/p>

進(jìn)第一個(gè)父類:

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

調(diào)用on_update函數(shù)了就會(huì)給modified設(shè)為True。

所以:

session['user_info'] = 'abc'     # session.__setitem__
session['user_info'][('name')]

第一行會(huì)修改,但是第二行是調(diào)用的__getitem__,而源碼(上圖)沒有相關(guān)處理,所以不會(huì)保存。

解決方法:
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

再來看下源碼(上面沒有看完的部分):
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

進(jìn)去看,因?yàn)樵O(shè)置了modified為True,所以這個(gè)should_set_cookie就為True,所以這個(gè)if就不成立,就繼續(xù)往下執(zhí)行。

不過這部分源碼給了我們另一個(gè)方法,如果設(shè)置SESSION_REFRESH_EACH_REQUEST這個(gè)參數(shù)為True,每次請(qǐng)求session也都會(huì)修改(用這個(gè)方法解決):
(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析

而且推薦使用這個(gè)方法,推薦用這個(gè)的原因:

想象一個(gè)使用場景,如果用戶登錄一個(gè)網(wǎng)站,cookie設(shè)置的二十分鐘失效,如果這個(gè)過程中用戶一直沒有做cookie相關(guān)的操作,那么20分鐘后登錄就失效了,但是如果這二十分鐘用戶一直在訪問這個(gè)網(wǎng)站,是不應(yīng)該讓用戶失效的。

如果設(shè)置了上述這個(gè)參數(shù)為True,就不會(huì)出現(xiàn)這種問題,

SESSION_REFRESH_EACH_REQUEST 的行為是在用戶請(qǐng)求時(shí)將會(huì)話標(biāo)記為“新的”(fresh),以確保它在每個(gè)請(qǐng)求之后都會(huì)被刷新。這意味著,無論用戶是否刷新瀏覽器或進(jìn)行其他操作,都會(huì)重置會(huì)話的過期時(shí)間。這是為了確保用戶在與應(yīng)用交互期間會(huì)話不會(huì)過期(過期時(shí)間會(huì)從用戶刷新的時(shí)間重新往后計(jì)算)

Flask中使用的話,要在登錄成功后設(shè)置一下permanent也為True(但是如果用flask-session就不用了,因?yàn)檫@個(gè)默認(rèn)是為True):

(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】,Flask框架從入門到實(shí)戰(zhàn),flask,mvc,原生session實(shí)戰(zhàn)使用,MTV架構(gòu)Demo,源碼剖析文章來源地址http://www.zghlxwxcb.cn/news/detail-842024.html

到了這里,關(guān)于(二十五)Flask之MTV&MVC架構(gòu)模式Demo【重點(diǎn):原生session使用及易錯(cuò)點(diǎn)!】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Django框架入門到精通(03)Django MTV和MVC的區(qū)別 (黃菊華老師大學(xué)生畢業(yè)設(shè)計(jì)學(xué)習(xí)教程)

    Django框架入門到精通(03)Django MTV和MVC的區(qū)別 (黃菊華老師大學(xué)生畢業(yè)設(shè)計(jì)學(xué)習(xí)教程)

    博主介紹 :《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識(shí)視頻課程,免費(fèi) 項(xiàng)目配有對(duì)應(yīng)開發(fā)文檔、開題報(bào)告、任務(wù)書、PPT、論文模版

    2024年02月07日
    瀏覽(24)
  • MVC設(shè)計(jì)模式、JSP開發(fā)模式、三層架構(gòu)&MVC練習(xí)學(xué)生信息管理系統(tǒng)

    本文將介紹MVC設(shè)計(jì)模式、JSP開發(fā)模式、三層架構(gòu)和MVC練習(xí)的基本概念,并演示如何使用這些技術(shù)來構(gòu)建一個(gè)學(xué)生信息管理系統(tǒng)。該系統(tǒng)將包括數(shù)據(jù)庫準(zhǔn)備、查詢、增加、刪除、更新和分頁功能。 MVC是一種軟件架構(gòu)模式,將應(yīng)用程序分為三個(gè)部分:模型(Model)、視圖(View)和

    2023年04月25日
    瀏覽(440)
  • 【軟件架構(gòu)模式——MVC、MVP、MVVM】

    1. MVC(Model-View-Controller) 概念介紹: MVC是一種軟件架構(gòu)模式,用于組織應(yīng)用程序的代碼和邏輯。它將應(yīng)用程序分為三個(gè)核心部分:模型(Model)、視圖(View)和控制器(Controller)。 **模型(Model)**負(fù)責(zé)處理應(yīng)用程序的數(shù)據(jù)邏輯和狀態(tài)。它表示應(yīng)用程序的數(shù)據(jù)源,并封裝了與

    2024年02月11日
    瀏覽(87)
  • 深入剖析 MVC 模式與三層架構(gòu)

    深入剖析 MVC 模式與三層架構(gòu)

    前面我們探討了 JSP 的使用,隨著計(jì)算機(jī)技術(shù)的不斷更新迭代,JSP 的技術(shù)由于存在很多的缺點(diǎn),已經(jīng)逐漸退出了歷史的舞臺(tái),所以在學(xué)習(xí)時(shí),我們只需要了解其如何實(shí)現(xiàn)的數(shù)據(jù)的增刪改查。不用刨根問底,花費(fèi)大量的時(shí)間,得不償失。 理解 JSP 及其原理 學(xué)會(huì)使用 EL 表達(dá)式和

    2024年02月22日
    瀏覽(486)
  • MVC設(shè)計(jì)模式和與三層架構(gòu)的關(guān)系

    MVC設(shè)計(jì)模式和與三層架構(gòu)的關(guān)系

    M:Model,模型層,指工程中的JavaBean,作用是處理數(shù)據(jù) JavaBean分為兩類: 一類稱為數(shù)據(jù)承載Bean:專門存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的,如 Student、User 等 一類稱為業(yè)務(wù)處理Bean:指 Service 或 Dao 對(duì)象,專門用于處理業(yè)務(wù)邏輯和數(shù)據(jù)訪問。 V:View,視圖層,指工程中的html或jsp等頁面,作用是與用

    2024年01月22日
    瀏覽(365)
  • 【Android】MVC,MVP,MVVM三種架構(gòu)模式的區(qū)別

    【Android】MVC,MVP,MVVM三種架構(gòu)模式的區(qū)別

    MVC 傳統(tǒng)的代碼架構(gòu)模式,僅僅是對(duì)代碼進(jìn)行了分層,其中的C代表Controller,控制的意思 將代碼劃分為數(shù)據(jù)層,視圖層,控制層,三層之間可以任意交互 MVP MVP是在MVC基礎(chǔ)上改進(jìn)而來的一種架構(gòu),其中的P代表Presenter,主持的意思 它主要在以下兩方面進(jìn)行了改進(jìn):解耦,接口化

    2024年02月13日
    瀏覽(99)
  • Android安卓架構(gòu)MVC、MVP、MVVM模式的概念與區(qū)別

    Android安卓架構(gòu)MVC、MVP、MVVM模式的概念與區(qū)別

    目錄 MVC框架 MVP框架 MVVM框架 MVVM與MVP區(qū)別 MVVM與MVC區(qū)別 MVC、MVP、MVVM模式哪個(gè)要好一些 MVC(Model-View-Controller)、MVP(Model-View-Presenter)、MVVM(Model-View-ViewModel)是三種常見的軟件架構(gòu)模式,它們的目的都是將應(yīng)用程序的不同部分分離開來,以提高代碼的可維護(hù)性、可擴(kuò)展性和可

    2024年02月21日
    瀏覽(93)
  • [Java]JavaWeb學(xué)習(xí)筆記(動(dòng)力節(jié)點(diǎn)老杜2022)【Javaweb+MVC架構(gòu)模式完結(jié)】

    [Java]JavaWeb學(xué)習(xí)筆記(動(dòng)力節(jié)點(diǎn)老杜2022)【Javaweb+MVC架構(gòu)模式完結(jié)】

    視頻地址:動(dòng)力節(jié)點(diǎn)最新JavaWeb視頻教程,javaweb零基礎(chǔ)入門到精通IDEA版https://www.bilibili.com/video/BV1Z3411C7NZ?p=1vd_source=93ab990b9131a1b90943874a5448830a 資料鏈接:https://pan.baidu.com/s/1y-Dm0dGjQQOvARFBmGiG1w?pwd=1234 提取碼:1234 【Tomcat服務(wù)器版本與支持Java版本的對(duì)應(yīng)關(guān)系:https://tomcat.apache.org/whi

    2023年04月09日
    瀏覽(44)
  • Servlet-搭建個(gè)人博客系統(tǒng)(MVC架構(gòu)模式簡介,maven的配置和使用)

    Servlet-搭建個(gè)人博客系統(tǒng)(MVC架構(gòu)模式簡介,maven的配置和使用)

    目錄 1. MVC架構(gòu)模式簡介 2. maven的配置和使用 3.?項(xiàng)目總述?? 3.1???Controller層 3.2???Model層 3.3???View層 4. 頁面的主要功能實(shí)現(xiàn)?? 4.1 ??登陸頁面(login.html) 4.2 ??博客列表頁面(blog_index.html) 4.3 ??博客詳情頁面(blog_detail.html) 4.4 ??博客編輯頁(blog_editor.html) 5.Conto

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包