成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

django框架-創(chuàng)新互聯(lián)

一、Django的下載與基本命令

1.下載Django

pip install django

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),福田企業(yè)網(wǎng)站建設(shè),福田品牌網(wǎng)站建設(shè),網(wǎng)站定制,福田網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,福田網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

2. 創(chuàng)建一個(gè)django project

django-admin.py startproject mysite
[mysite 項(xiàng)目名稱]
django框架
當(dāng)前目錄下會(huì)成mysite的工程,目錄結(jié)構(gòu)如下:

  • manage.py ----- Django項(xiàng)目里面的工具,通過它可以調(diào)用django shell和數(shù)據(jù)庫(kù)等
  • setting.py ----- 包含了項(xiàng)目的默認(rèn)設(shè)置,包括數(shù)據(jù)庫(kù)信息,調(diào)用標(biāo)志以及其他一些工作
  • urls.py ----- 負(fù)責(zé)把URL模式映射到應(yīng)用程序

3.在mysite目錄下創(chuàng)建應(yīng)用

py manage.py startapp app01

當(dāng)前目錄下會(huì)成mysite的工程,目錄結(jié)構(gòu)如下:
django框架

4. 啟動(dòng)django項(xiàng)目

方法一:在cmd終端輸入
python manage.py runserver 8080
方法二:在pycharm中點(diǎn)擊Run運(yùn)行

5.簡(jiǎn)單例子

瀏覽器輸入網(wǎng)址urls下的path匹配到路徑之后,在視圖views中執(zhí)行指定的函數(shù)
注意:html文件要放在templates文件下面

# urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),
]
# views.py
def timer(request):
    import time
    date = time.time()
    return render(request,"timer.html", {"date":date})

# templates/timer.html
當(dāng)前時(shí)間:{{ date }}

二、靜態(tài)文件配置

作為一個(gè)網(wǎng)站應(yīng)該要把js和css文件放在服務(wù)器端,而不是簡(jiǎn)單的放在timer.html同一個(gè)目錄下

  1. 在project中創(chuàng)建一個(gè)static的文件夾(能static就是static,別用其他的名字)
  2. 將js和css的文件放到static的文件夾中
  3. 在setting.py中加入STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    ]

4.是否只能用STATICFILES_DIRS,是的錯(cuò)一個(gè)都不行

文件結(jié)構(gòu):
|---mysite
    |---app01
    |---demo
    |---static
        |---jquer-3.3.1.min.js
        |---app01
            |---timer.css
            |---timer.js
    |---templates
        |---timer.html

# mysite/setting.py

STATIC_URL = "/static/"

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"), # 自定義靜態(tài)文件(statics名稱盡量和默認(rèn)保持一致)
]

將css和js分別放入app01文件夾中

timer.html中引入css和js文件

在瀏覽器中輸入http://127.0.0.1:8000/static/jquery-3.3.1.min.js 查看是否可以找到j(luò)Query文件

三、路由控制

1. 簡(jiǎn)單配置

路由的配置就是哪一個(gè)路徑由哪一個(gè)視圖函數(shù)處理
舉個(gè)例子比如檔案庫(kù)中有2003,2004~2018的檔案進(jìn)行分類,如果不用路由控制那就會(huì)出現(xiàn)下面這樣的情況。

# mysite/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),

    re_path(r'^articles/2003/$', views.special_case_2003),
    re_path(r'^articles/2004/$', views.special_case_2003),
    re_path(r'^articles/2005/$', views.special_case_2003),
    re_path(r'^articles/2018/$', views.special_case_2003),
]

那使用路由控制之后應(yīng)該是什么情況呢

# mysite/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),

    re_path(r'^articles/2003/$', views.special_case_2003),
    re_path(r'^articles/([0-9]{4})/$', views.special_year), # 一個(gè)分組相當(dāng)于多傳一個(gè)參數(shù),special_year(request,year)
    re_path(r'^articles/([0-9]{4})/([0-9]{2})/$',views.mouth_archive),
    re_path(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)$', views.archive_detail),
]

# app01/views.py
def special_case_2003(request):
    return HttpResponse('special_case_2003')

def year_archive(request,year):
    return HttpResponse(year)

def mouth_archive(request,year,mouth):
    return HttpResponse(year,mouth)

def archive_detail(request,year,mouth,day):
    return HttpResponse(year,mouth,day)

注意:

  • 若要從URL中捕獲一個(gè)值,只需要在它周圍放置一對(duì)圓括號(hào)。
  • 不需要添加一個(gè)前導(dǎo)的反斜桿,因?yàn)槊總€(gè)URL都有。例如,應(yīng)該是^articles而不是^/articles。
  • 每個(gè)正則表達(dá)式前面的'r'是可選的但是建議加上。它告訴Python這個(gè)字符串是"原始的" -- 字符串中任何字符都不應(yīng)該轉(zhuǎn)義

2. 有名分組

在分組中添加:?P<變量名稱>

urlpatterns = [
    re_path(r'^articles/(?P<y>[0-9]{4})/(?P<m>[0-9]{2})/$',views.mouth_archive),
]

在瀏覽器中輸入http://127.0.0.1:8000/app01/2003/03/,就表示mouth_archive(request,y=2003,m=03),
就好比函數(shù)中固定參數(shù)傳值一樣

3. 分發(fā)

  • 假如我們項(xiàng)目中有10個(gè)應(yīng)用,每個(gè)應(yīng)用都是100個(gè)URL,那所有的路由控制都會(huì)在全局的urls.py文件中增加耦合度
  • 分發(fā)的作用就是對(duì)每個(gè)app進(jìn)行解耦,把各自的app的url放到各自的文件夾下
# mysite/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),

    re_path(r'app01/',include("app01.urls"))
]

# app01/urls.py
urlpatterns = [
    re_path(r'^articles/([0-9]{4})/([0-9]{2})/$',views.mouth_archive),
]

4. 登陸驗(yàn)證示例

  • 為了測(cè)試我們需要先注釋掉setting.py文件下的django.middleware.csrf.CsrfViewMiddleware
  • 當(dāng)我們寫好頁(yè)面的時(shí)候按F12可以查看login是get的請(qǐng)求,當(dāng)點(diǎn)擊按鈕后變成POST請(qǐng)求
# 在template中創(chuàng)建一個(gè)login.html

<form action="{% url 'LOG' %}" method="post">
    用戶名:<input type="text", name="user">
    密碼:<input type="password" name="pwd">
    <input type="submit" name="" id="">
</form>

# mysite/urls.py
# name='LOG'指的就是給login/起的別名
path('login/', views.login, name='LOG'),

5.PATH

6.視圖部分

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站標(biāo)題:django框架-創(chuàng)新互聯(lián)
鏈接分享:http://jinyejixie.com/article8/dcjdip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)標(biāo)簽優(yōu)化、云服務(wù)器、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
崇信县| 仁寿县| 松江区| 阳信县| 霍山县| 绥芬河市| 乐亭县| 宝清县| 金寨县| 武宣县| 大英县| 全州县| 揭东县| 封开县| 东台市| 呈贡县| 闸北区| 拉孜县| 宁津县| 通道| 高唐县| 江阴市| 桓仁| 乌审旗| 洞头县| 永兴县| 黄平县| 浦东新区| 青岛市| 天门市| 射洪县| 临泽县| 玉树县| 马关县| 兴安县| 五指山市| 乌鲁木齐市| 开原市| 翼城县| 基隆市| 宜昌市|