溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Django開(kāi)發(fā)-畢設(shè)-一、開(kāi)啟新項(xiàng)目

發(fā)布時(shí)間:2020-07-22 10:03:18 來(lái)源:網(wǎng)絡(luò) 閱讀:1895 作者:正經(jīng)的青年 欄目:開(kāi)發(fā)技術(shù)

    在經(jīng)歷了使用Java作為后臺(tái)不斷的遇到各種離奇的小錯(cuò)誤之后,我選擇了python作為我的后臺(tái)來(lái)開(kāi)發(fā)我大學(xué)中的最后一個(gè)網(wǎng)頁(yè)項(xiàng)目。我對(duì)Django的感覺(jué)就是簡(jiǎn)單,大大簡(jiǎn)化了開(kāi)發(fā)的時(shí)間,最主要的是基于python這種腳本語(yǔ)言,省去了編譯時(shí)會(huì)遇到的各種小錯(cuò)誤。下面開(kāi)始開(kāi)發(fā)記錄。

    首先選擇環(huán)境,在這里,我選擇了虛擬機(jī)里安裝ubuntu14.04作為后臺(tái),為此虛擬機(jī)分配了3GB內(nèi)存(大一點(diǎn),要不然卡),兩塊網(wǎng)卡,一塊為了使其聯(lián)網(wǎng),一塊為了與本地進(jìn)行連接(怕網(wǎng)線(xiàn)突然掉了),IP隨便配,只要能正常通信即可。

Django開(kāi)發(fā)-畢設(shè)-一、開(kāi)啟新項(xiàng)目

Django開(kāi)發(fā)-畢設(shè)-一、開(kāi)啟新項(xiàng)目

    python版本:2.7.6

    Django版本:1.11.8

Django開(kāi)發(fā)-畢設(shè)-一、開(kāi)啟新項(xiàng)目

    參考教程:https://code.ziqiangxuetang.com/django/django-tutorial.html

    安裝軟件過(guò)程省略,下面正式開(kāi)始項(xiàng)目:

    第一步,切換到工作目錄,以后的項(xiàng)目都放在這個(gè)目錄中

root@ubuntu:~# cd python/django/

    第二部,使用命令開(kāi)啟新項(xiàng)目

root@ubuntu:~/python/django# django-admin startproject codeManageAndShare

        在使用了這個(gè)命令之后,就會(huì)在當(dāng)前的目錄下生成一個(gè)名字為“codeManageAndShare”的目錄,這個(gè)就相當(dāng)于開(kāi)啟了一個(gè)工程,然后這個(gè)工程里的每個(gè)項(xiàng)目叫做app。進(jìn)入這個(gè)目錄可以看到生成了很多的目錄和文件,其中,有一個(gè)和工程名相同的目錄,在這個(gè)目錄中有很多的python腳本文件,其中使用最多的是settings.py和urls.py這兩個(gè)文件,它們的功能分別是設(shè)置和URL導(dǎo)流,例如當(dāng)需要設(shè)置哪些主機(jī)可以訪(fǎng)問(wèn)時(shí)要在settings.py中進(jìn)行設(shè)置,當(dāng)訪(fǎng)問(wèn)到來(lái)時(shí),展示哪些東西,要在urls.py中進(jìn)行設(shè)置。

    第三部,使用命令開(kāi)啟新app

        在建立了工程之后,要想實(shí)現(xiàn)具體的功能,就需要建立項(xiàng)目,建立項(xiàng)目需要使用當(dāng)前工程目錄下的“manage.py”腳本:

root@ubuntu:~/python/django/codeManageAndShare# python manage.py startapp app_selfPart

        這樣就建立好了一個(gè)app(項(xiàng)目),根據(jù)名字可以看出,這個(gè)項(xiàng)目的功能是建立一個(gè)個(gè)人模塊,當(dāng)使用了命令之后,會(huì)在當(dāng)前目錄下生成一個(gè)名為“app_selfPart”的新目錄,在這個(gè)目錄中也會(huì)生成很多的腳本文件,其中使用最多的是“models.py”和“views.py”這兩個(gè)腳本文件,功能分別是建立數(shù)據(jù)庫(kù)和建立視圖。

一些命令:

    運(yùn)行服務(wù)端(端口隨意指定,IP這樣寫(xiě)是為了讓所有IP均可訪(fǎng)問(wèn),如果不帶IP默認(rèn)只有本地可以訪(fǎng)問(wèn),還需要在codeManageAndShare目錄中的setting.py中更改AllowHost(將參數(shù)改成“"*"”(有引號(hào))即可)):

root@ubuntu:~/python/django/codeManageAndShare# python manage.py runserver 0.0.0.0:8000

    同步數(shù)據(jù)庫(kù)(下面兩條命令挨個(gè)執(zhí)行一遍即可)

        提交更改,生成更改文件:

root@ubuntu:~/python/django/codeManageAndShare# python manage.py makemigrations

        將更改同步到數(shù)據(jù)庫(kù)中:

root@ubuntu:~/python/django/codeManageAndShare# python manage.py migrate


個(gè)人的理解

        當(dāng)服務(wù)端運(yùn)行起來(lái)之后,即可在真實(shí)機(jī)上打開(kāi)瀏覽器通過(guò)IP和端口號(hào)進(jìn)行訪(fǎng)問(wèn),訪(fǎng)問(wèn)的過(guò)程是通過(guò)瀏覽器發(fā)起訪(fǎng)問(wèn)請(qǐng)求,然后請(qǐng)求到達(dá)服務(wù)器監(jiān)聽(tīng)的8000端口,然后“codeManageAndShare”中的“urls.py”根據(jù)“setting.py”開(kāi)始起作用,根據(jù)“urls.py”中配置的類(lèi)似于正則表達(dá)式的東西對(duì)請(qǐng)求的URL進(jìn)行匹配,然后將請(qǐng)求送到匹配成功的app中的“views.py”中進(jìn)行處理,在“views.py”中事先寫(xiě)好了一些函數(shù),這些函數(shù)規(guī)定了對(duì)數(shù)據(jù)進(jìn)行的處理,函數(shù)的參數(shù)就是請(qǐng)求的“request”,當(dāng)處理完成之后,會(huì)有一個(gè)“return”語(yǔ)句來(lái)返回處理的結(jié)果,這個(gè)處理的結(jié)果,目前所知:

    1.渲染一個(gè)“templates”目錄中的模板(return render(request,'selfPart.html'))(這個(gè)目錄要自己在當(dāng)前的app下建立,但是尋找的時(shí)候會(huì)自動(dòng)的去這個(gè)目錄中找),而渲染的過(guò)程可以使用函數(shù)將從數(shù)據(jù)庫(kù)中取出的參數(shù)傳進(jìn)去(渲染時(shí)在模板中使用變量的方法是“{{var}}”)最后將渲染的結(jié)果通過(guò)return返回給請(qǐng)求;

    2.直接返回文字信息(return JsonResponse("一些文字",safe=False)),這個(gè)返回的文字直接可以在瀏覽器中看到;

    3.直接進(jìn)行重定向(return  HttpResponseRedirect('/selfPart')),當(dāng)訪(fǎng)問(wèn)此URL時(shí)進(jìn)行處理,之后重定向到新的URL。

    對(duì)于數(shù)據(jù)庫(kù),上面提到了,使用每個(gè)app中的“models.py”腳本,在這個(gè)腳本中的內(nèi)容大致如下圖所示:

Django開(kāi)發(fā)-畢設(shè)-一、開(kāi)啟新項(xiàng)目

        在上面這張圖中可以看到和一般的數(shù)據(jù)庫(kù)sql語(yǔ)言大不相同,我的理解是,Django對(duì)我們所熟知的sql語(yǔ)言進(jìn)行了封裝,將其轉(zhuǎn)化為了這種類(lèi)的方式,在這里使用變量的方式定義數(shù)據(jù)格式,然后就可以在其他腳本或命令行中使用命令來(lái)進(jìn)行對(duì)數(shù)據(jù)庫(kù)的處理,例如查找數(shù)據(jù)就可以直接使用“get”,Django在接收到這些命令之后,自動(dòng)的將其轉(zhuǎn)化為“select * from。。。”這樣的sql語(yǔ)句傳到數(shù)據(jù)庫(kù)中執(zhí)行。過(guò)濾就可以直接使用“filter”。使用這些函數(shù)之后的數(shù)據(jù)還是對(duì)象,在接下來(lái)的處理中更方便,這大大方便了我們的使用和開(kāi)發(fā)。

        還有一個(gè)十分有用的功能就是用戶(hù)的認(rèn)證,當(dāng)我們需要開(kāi)發(fā)登錄模塊的時(shí)候,很大的時(shí)間要開(kāi)發(fā)認(rèn)證的部分,例如,一個(gè)私人的界面,不可以讓一個(gè)沒(méi)有登錄的人訪(fǎng)問(wèn),或者兩個(gè)已經(jīng)登錄的人所看到的個(gè)人頁(yè)面應(yīng)該分別是他們自己的個(gè)人頁(yè)面,類(lèi)似這種的功能,Django已經(jīng)替我們做好了,我們只需要在需要進(jìn)行認(rèn)證的app中的views.py腳本中添加修飾器即可,具體的后邊會(huì)提到。



以上,都是我根據(jù)觀(guān)察之后瞎編的!??!



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI