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

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

這篇具有很好參考價值的文章主要介紹了從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??Django是目前比較火爆的框架,之前有在知乎刷到,很多畢業(yè)生進入大廠實習后因為不會git和Django框架3天就被踢掉了,因為他們很難把自己的工作融入到整個組的工作中。因此,我嘗試自學Django并整理出如下筆記。
??在這部分,我將從Django的安裝講起,從創(chuàng)建項目到制作一個簡單的頁面(跑通流程),再到加入網(wǎng)頁,介紹Django的模板語法。最后利用所學完成一個小的網(wǎng)頁展示。

1. 安裝Django

??django跟flask不一樣,它pip install 之后除了會再Libs/site-package里面添加django包之外,還會在Scripts中間剪一個django-admin.exe文件,這個文件是個工具,能夠幫我們直接創(chuàng)建django項目。主要是因為django需要創(chuàng)建的文件文件夾比較,直接這個用這個比較方便,可以自動創(chuàng)建。

2. 創(chuàng)建項目(startproject)

2.1 創(chuàng)建項目

? 打開中斷并進入項目想創(chuàng)建的目錄。注意,第二條指令是需要保證python已經(jīng)加入到電腦的環(huán)境變量中之后的。

cd Django
django-admin startproject first_try

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

2.2 介紹項目文件

first_try
	manage.py		// 好東西,項目管理、啟動、創(chuàng)建app、數(shù)據(jù)管理都在這里,不要動它
    first_try
    	__init__.py
        settings.py	// 項目的配置文件,很多操作也在這里(鏈接數(shù)據(jù)庫)
        urls.py		// url和python函數(shù)的對應關(guān)系都在這里,操作基本都在這里
        asgi.py		// 異步接受網(wǎng)絡請求的
        wsgi.py		// 同步接受網(wǎng)絡請求的

2.3 APP(startapp)

? app不是應用,是功能的劃分。

? 創(chuàng)建是靠manage.py創(chuàng)建的,終端輸入

python manage.py startapp application01

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

appliction01
	__init__.py
	admin.py			// django默認的自帶后臺管理
	apps.py				// app啟動類
	migrations			// 數(shù)據(jù)庫變更記錄
		__init__.py
	models.py			// 數(shù)據(jù)庫的操作在這里
	test.py				// 單元測試
	views.py			// first_try里面的url里的函數(shù)一般都要在這里找(常用)

3. 走通流程(urls, views, runserver)

3.1 第一個頁面

? 在first_try/settings.py中找到 INSTALLED_APPS,加入app的config。這里是加入配置文件。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 寫一個index放到視圖中,相當與在這里寫了一個頁面。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 修改Django自帶urlpatterns,相當于在這里將頁面加入到網(wǎng)頁中。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 在終端執(zhí)行啟動程序,我們看看結(jié)果。

python manage.py runserver 9211

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

3.2 多個頁面

? 在正常情況下,一個大的項目包含的頁面何止百個,這一個頁面當然不能滿足我們的需求。我們可以嘗試寫多個頁面。

? view.py

# *coding:utf-8*
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request):
    return HttpResponse(r"Hey man, U can do it!")

def Olsen(request):
    return HttpResponse(r"I love Olsen!!!")

def user(request):
    return HttpResponse(r"User")

? urls.py

from django.urls import path
from application01 import views
urlpatterns = [
    path('index/', views.index),
    path('index/Olsen', views.index),
    path('user/', views.index)
]

? 查看效果,可以看到我們的三個網(wǎng)頁都在這里了。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

4. 網(wǎng)頁

4.1 加入網(wǎng)頁(templates, render)

? 正常情況下我們訪問的網(wǎng)頁都是花里胡哨的,是由http文件展現(xiàn),完全不是現(xiàn)在這樣的簡單的幾行字,那應該怎么實現(xiàn)這個功能呢?

? 首先我們先要創(chuàng)建一個templates的文件,文件下面放入我們需要用到的html文件。注意,這里的文件名一定是templates,這個是django默認的。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 然后把templates加入到路徑中,因為默認情況下會放到app下的templates里面,我們這個templates是再根目錄里面的:

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 我們隨便寫個html做實驗:

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>I love Olsen!!!</div>
</body>
</html>

? 在views.py中加入這個網(wǎng)頁。在這里我們使用render函數(shù),第一個參數(shù)為request,第二個參數(shù)是文件名,第三個參數(shù)可以不要,是把文件中用{{}}標起來的內(nèi)容替換的功能。

def Clarknb(request):
    return render(request, "Clarknb.html")

? 再把這個添加到url.py里面:

urlpatterns = [
    path('index/', views.index),
    path('index/Olsen', views.index),
    path('user/', views.index),
    path('Clarknb/', views.Clarknb),
]

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

4.2加入圖片、css、js等靜態(tài)文件

  • 圖片

? 先創(chuàng)建靜態(tài)目錄(static),再將目錄添加到路徑中。注意:一定要叫static,配置里就是這么叫的。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 效果如下:

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

  • css、js、bootstrap等操作同上

? css文件操作同上。注意:可以用{% load static %}加載static文件,然后再引用。這種方法需要在每個文件的頭部都手動load一次,比較麻煩,所以我們嘗試另一種辦法:在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static']。這種寫法的好處是以后改代碼好改,因為這種讀法是在配置文件中找這個靜態(tài)的路徑,改的時候不需要像之前絕對路徑那樣一個一個改。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 沒有報錯,證明引入成功了。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

5. 模板語法

5.1 基礎語法與循環(huán)

? 為了方便平時的使用,Django是有自己的模板語言的,說實話有些地方跟vue挺像的。我們修改之前的例子嘗試一些Django的模板語法。這里用到了之前提到的render的第三個參數(shù)。

? 主要用到的知識點有:

  • render第三個參數(shù)的使用
  • 列表的使用
  • 字典的使用
  • 循環(huán)

? Clarknb.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="{% static 'js/jquery.js' %}" type="text/javascript"></script>
    <script src="{% static 'plugins/bootstrap.min.js' %}" type="text/javascript"></script>
</head>
<body>
    <div>I love Olsen!!!</div>
    <div>test1:<br>{{n1}}</div>
    <div>{{n2}}</div>
<!--    調(diào)用列表-->
    <div><br>test2:<br>{{n2.0}}</div>
    <div>{{n2.2}}</div>
<!--    調(diào)用字典-->
    <div>
        <br>test3:<br>
        {{n3.hyq}}<br>
        {{n3.zlp}}
    </div>
<!--    列表的循環(huán)-->
    <div><br>test4:</div>
    <div>
        {% for item in n2 %}
            <span>{{item}}<br></span>
        {% endfor %}
    </div>
<!--    字典的循環(huán)-->
    <div><br>test5:</div>
    <div>
        {% for k,v in n3.items %}
            <li>{{k}}={{v}}</li>
        {% endfor %}
    </div>
    <div><br>test6:</div>
    {% for item in n4 %}
<!--        兩種寫法都可以-->
<!--    寫法1-->
        {% for k,v in item.items %}
            <li>{{k}}={{v}}</li>
        {% endfor %}
<!--    寫法2-->
<!--    <li>{{item.zlp}}=>{{item.hyq}}</li>-->
<!--        <br>-->
    {% endfor %}
    <img src="{% static 'img/Olsen01.jpg' %}" alt="" style="width:100%">
</body>
</html>

? views.py:

# *coding:utf-8*
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def Clarknb(request):
    name1 = "Clark"
    name2 = ["Olsen", "ClarkHu", "LLGreat"]
    name3 = {"hyq": 1, "zlp": 2}
    name4 = [{"hyq": 1, "zlp": 2},
             {"hyq": 3, "zlp": 6},
             {"hyq": 4, "zlp": 9}]
    return render(request, "Clarknb.html", {"n1": name1, "n2": name2, "n3": name3, "n4": name4})

? 顯示結(jié)果如下:

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

5.2 判斷語句

? Django也提供了判斷語法:

  • if
  • elif
  • else

? views.py不變

? Clarknb.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="{% static 'js/jquery.js' %}" type="text/javascript"></script>
    <script src="{% static 'plugins/bootstrap.min.js' %}" type="text/javascript"></script>
</head>
<body>
<!--    判斷-->
    {% if n1 == "Clark" %}
        <h1>ClarkHu NB!!</h1>
    {% elif n1 == "Olsen" %}
        <h1>I love Olsen</h1>
    {% else %}
        <h1>Brand new ending!!</h1>
    {% endif %}
</body>
</html>

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

5.3注意點

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

6. 案例

? 根據(jù)所學,我們已經(jīng)可以做到從某個網(wǎng)頁爬取信息并將信息顯示到我們自己網(wǎng)頁上了。這里以聯(lián)通的新聞為例(中國聯(lián)通 (chinaunicom.com.cn))。實例中的新聞內(nèi)容被迫打碼,不然會被判定圖片違規(guī)……

? 我們首先獲取發(fā)出請求的URL:
從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 返還的結(jié)果可以在response中查看:
從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)

? 接下來我們用爬蟲模擬這個步驟:

? views.py(記得改User-Agent

def getnews(request):
    import requests
    head = {
        "User-Agent": bulabula
    }
    res = requests.get("http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2022/06/news", headers=head)
    data_list = res.json()
    return render(request, "news.html", {"n1": data_list})

? news.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>news</title>
</head>
<body>
    <h1>
        聯(lián)通新聞中心
    </h1>
    {% for item in n1 %}
        <ul>
            {% for k, v in item.items %}
                <li>{{v}}</li>
            {% endfor %}
        </ul>
    {% endfor %}
</body>
</html>

? urls.py

"""first_try URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from django.contrib import admin
from django.urls import include
from application01 import views
from django.shortcuts import render
urlpatterns = [
    path('index/', views.index),
    path('index/Olsen', views.index),
    path('user/', views.index),
    path('Clarknb/', views.Clarknb),
    path('news/', views.getnews),
]

? 結(jié)果很糙,但是跑通了,后續(xù)只要選取自己喜歡的信息展示就可以了。

從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)文章來源地址http://www.zghlxwxcb.cn/news/detail-493880.html

到了這里,關(guān)于從零開始的Django框架入門到實戰(zhàn)教程(內(nèi)含實戰(zhàn)實例) - 01 創(chuàng)建項目與app、加入靜態(tài)文件、模板語法介紹(學習筆記)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關(guān)文章

  • Android SDK安裝教程(超詳細),從零基礎入門到實戰(zhàn),從看這篇開始

    Android SDK安裝教程(超詳細),從零基礎入門到實戰(zhàn),從看這篇開始

    前言 在使用appnium的時候,除了安裝JDK之外,也需要安裝Android SDK。那么,正確安裝Android SDK是怎樣的呢,跟著小編繼續(xù)往下看。 安裝Android SDK和環(huán)境配置 1.安裝Android SDK 首先打開官網(wǎng):https://www.androiddevtools.cn/ 選中導航中的Android SDK工具,再點擊SDK Tools。 網(wǎng)頁會自動往下翻,

    2024年02月14日
    瀏覽(96)
  • 【Spring教程31】SSM框架整合實戰(zhàn):從零開始學習SSM整合配置,如何編寫Mybatis SpringMVC JDBC Spring配置類

    【Spring教程31】SSM框架整合實戰(zhàn):從零開始學習SSM整合配置,如何編寫Mybatis SpringMVC JDBC Spring配置類

    歡迎大家回到《Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實現(xiàn),如果您對Maven還很陌生,請移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《Rest風格簡介與RESTful入門》 前面我們已經(jīng)把Mybatis、Spring和SpringMVC三個框架

    2024年02月04日
    瀏覽(24)
  • Kubernetes超詳細教程,一篇文章幫助你從零開始學習k8s,從入門到實戰(zhàn)

    Kubernetes超詳細教程,一篇文章幫助你從零開始學習k8s,從入門到實戰(zhàn)

    k8s github地址:https://github.com/kubernetes/kubernetes 官方文檔:https://kubernetes.io/zh-cn/docs/home/ k8s,全程是 kubernetes,這個名字源于希臘語,意為\\\"舵手\\\"或\\\"飛行員” k8s 這個縮寫是因為 k 和 s 之間有八個字符 Google 在2014年開源了 k8s 項目,k8s 是一個用于 自動化部署、擴展和管理容器化

    2024年04月14日
    瀏覽(57)
  • 【Kubernetes】k8s入門及使用(從零開始做實例)

    【Kubernetes】k8s入門及使用(從零開始做實例)

    1.1 選擇安裝方式 1.minikube 2.使用kubeadm 是k8s官方推薦的安裝k8s的方式 (推薦) 3.二進制安裝 4.第3方的部署工具: rancher等 今天我們選擇比較具有實用性的kubeadm的方式進行k8s的安裝和部署。 1.2 集群的架構(gòu) 1.單master多node 2.多master多node ——高可用( 3個master 3個node 1臺負載均衡(

    2024年02月04日
    瀏覽(20)
  • 從零開始的QQ開放平臺機器人-------Gensokyo框架部署運行開發(fā)教程合集

    從零開始的QQ開放平臺機器人-------Gensokyo框架部署運行開發(fā)教程合集

    大家好,我是早苗狐,一名有5年QQ機器人開發(fā)運營經(jīng)驗的機器人愛好者. 隨著QQ為機器人開放了越來越多的接口能力,基于QQ開放平臺Api能力的新框架逐漸應運而生, 本文就帶給大家如何通過一系列操作,部署,運行,維護和開發(fā)一個新的QQ機器人. QQ開放平臺地址: QQ開放平臺 QQ開放平臺

    2024年02月03日
    瀏覽(50)
  • SpringCloud--從零開始搭建微服務基礎環(huán)境入門教程【一】

    SpringCloud--從零開始搭建微服務基礎環(huán)境入門教程【一】

    ??前言 本篇博文是關(guān)于SpringCloud–從零開始搭建微服務基礎環(huán)境入門教程【一】,希望你能夠喜歡?? ??個人主頁:晨犀主頁 ??個人簡介:大家好,我是晨犀,希望我的文章可以幫助到大家,您的滿意是我的動力???? ??歡迎大家:這里是CSDN,我總結(jié)知識的地方,歡迎來

    2024年02月10日
    瀏覽(32)
  • 【React 入門實戰(zhàn)篇】從零開始搭建與理解React應用-二、前置準備與環(huán)境搭建

    二、前置準備與環(huán)境搭建 2.1 安裝Node.js與npm 在開始React開發(fā)之前,我們需要確保Node.js和npm(Node Package Manager)已經(jīng)安裝在我們的計算機上。Node.js是一個基于Chrome V8引擎的JavaScript運行環(huán)境,而npm則是Node.js的包管理器,用于安裝和管理JavaScript庫和工具。 安裝Node.js: 訪問Node.js官

    2024年04月10日
    瀏覽(22)
  • [前端系列第3彈]JS入門教程:從零開始學習JavaScript

    本文將帶領大家,從零開始學習JavaScript,fighting~ 目錄 一、JavaScript簡介 二、變量和數(shù)據(jù)類型 三、注釋和分號 四、算術(shù)運算符 五、表達式和語句 六、代碼塊和作用域 七、函數(shù)(最重要)? ????????JavaScript(簡稱JS)是一種運行在瀏覽器中的腳本語言,它可以讓網(wǎng)頁變得

    2024年02月13日
    瀏覽(95)
  • PyCharm下載安裝教程(超詳細),從零基礎入門到精通,從這篇開始

    PyCharm下載安裝教程(超詳細),從零基礎入門到精通,從這篇開始

    1、Pycharm 簡介 2、Pycharm下載 3、環(huán)境變量的配置 4、Pycharm的使用 PyCharm是一種Python IDE(Integrated Development Environment,集成開發(fā)環(huán)境),帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,比如調(diào)試、語法高亮、項目管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測

    2024年02月11日
    瀏覽(22)
  • 【React 入門實戰(zhàn)篇】從零開始搭建與理解React應用-三、React核心概念與基礎語法

    三、React核心概念與基礎語法 3.1 JSX語法詳解 JSX是React中的一個語法糖,它允許開發(fā)者在JavaScript代碼中編寫類似HTML的標記。這種語法使得開發(fā)者能夠以一種聲明式的方式描述界面,提高了代碼的可讀性和可維護性。 JSX的語法規(guī)則: 元素創(chuàng)建 :使用尖括號 來創(chuàng)建元素,就像在

    2024年04月08日
    瀏覽(42)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包