Python學習---Django的基礎學習

來源:互聯網
上載者:User

標籤:ble   padding   run   新版   arm   NPU   ==   時間   ddl   

django實現流程

Django學習架構:


    #安裝: pip3 install django
          添加環境變數
    #1  建立project
       django-admin startproject mysite
       ---mysite
          ---settings.py
          ---url.py
          ---wsgi.py
       ---- manage.py(開機檔案) 
    #2  建立APP      
       python mannage.py startapp  app01
    #3  settings配置    【Static files (CSS, JavaScript, Images)】
       TEMPLATES
       STATICFILES_DIRS=(
            os.path.join(BASE_DIR,"statics"),
        )
       STATIC_URL = ‘/static/‘
       #  我們只能用 STATIC_URL,但STATIC_URL會按著你的STATICFILES_DIRS去找
    #4  根據需求設計代碼
           url.py
           view.py
    #5  使用模版
       render(req,"index.html")  
    #6  啟動項目
       python manage.py runserver  127.0.0.1:8080
    #7  串連資料庫,操作資料
       model.py

Django的安裝及項目建立

安裝: pip3 install django

建立Django項目mysite以及子項目blog

專案檔介紹

初試牛刀

案例一:基本使用

settigs.py:  更改Django2.0.1的配置,更新為之前的路徑配置

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # Django以前版本

views.py

from django.shortcuts import render, HttpResponse# request裡面封裝了請求的所有的資訊# HttpResponse:跟request一樣,返回的資訊,可以呈現給頁面def hello(request):    return HttpResponse(‘<h1>hello world</h1>‘)  # 多了一層HTML渲染

mysite2/urls.py

from django.contrib import adminfrom django.urls import pathfrom blog import viewsurlpatterns = [    path(‘admin/‘, admin.site.urls),    path(r‘hello/‘, views.hello)  # 將路徑名跟函數進行映射]

]

啟動服務端:

python manage.py runserver 8080

另一種啟動方式:pycharm提供,預設8000連接埠,可以進行修改,本文用8080

注意:[如果有修改內容,修改後可以直接在瀏覽器內運行,python內部已經處理]

介面呈現:

案例二: 調用HTML實現頁面渲染

settigs.py:更改Django2.0.1的配置,更新為之前的路徑配置

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # 設定templates的路徑為Django以前版本# ‘DIRS‘: [],      # 注釋掉該行,此為Django 2.0.1最新版本# ‘django.middleware.csrf.CsrfViewMiddleware‘, # 注釋掉該行

mysite2/urls.py

from django.contrib import adminfrom django.urls import pathfrom blog import viewsurlpatterns = [    path(‘admin/‘, admin.site.urls),    path(r‘hello/‘, views.hello)  # 將路徑名跟函數進行映射

templates/today.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Django項目</title></head><body><h1> hello world, 早安,世界</h1><h2> 現在是北京時間:{{ today }}</h2></body></html>

views.py

from django.shortcuts import renderimport datetime# request裡面封裝了請求的所有的資訊def hello(request):    # render底部是調用HttpResponse來實現渲染的,Django裡面返回給頁面的都是HttpResponse對象    # render(): 用來渲染瀏覽器顯示,配合HTML實現資料的交換    # 這裡第一個參數必須是rquest, 第二個參數是我們頁面HTML的名稱, 第三個參數是傳遞的參數    # 這裡直接寫HTML名稱是因為Django將參數封裝再來settings.py檔案內    # ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # Django以前版本    today = datetime.datetime.now()    return render(request, "today.html", {"today": today})

頁面呈現

 

案例三:接收前台資料並返回前台資料

settigs.py:更改Django2.0.1的配置,更新為之前的路徑配置

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # 設定templates的路徑為Django以前版本# ‘DIRS‘: [],      # 注釋掉該行,此為Django 2.0.1最新版本# ‘django.middleware.csrf.CsrfViewMiddleware‘, # 注釋掉該行

views.py

from django.shortcuts import render, HttpResponseimport datetimedef userInfo(request):    user_list = []    # 這裡需要判斷前台資料提交的方法是POST還是GET的[大寫]    if request.method == "POST":        username = request.POST.get("username", None)        sex = request.POST.get("sex", None)        email = request.POST.get("email", None)        user = {"username": username, "sex": sex, "email": email}        print(user)        user_list.append(user)    return render(request, ‘index.html‘, {"user_list": user_list})  # 用{}傳遞一個對象給前端

mysite2/urls.py

from django.contrib import adminfrom django.urls import pathfrom blog import viewsurlpatterns = [    path(‘admin/‘, admin.site.urls),    path(r‘userInfo/‘, views.userInfo),  # 將路徑名跟函數進行映射]

templates/index.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8"></head><body>    <form method="post" action="/userInfo/" name="userInfo">        <p>姓名<input type="text" name="username"></p>        <p>性別<input type="text" name="sex"></p>        <p>郵箱<input type="text" name="email"></p>        <p><input type="submit" value="提交"></p>    </form><hr><hr>    <table border="1">        <tr>            <th>姓名</th>            <th>性別</th>            <th>郵箱</th>        </tr>        {% for i in user_list %}    {#Django裡面封裝的模版文法,用於for迴圈#}            <tr>                {# 這裡是變數,所以需要2個{}來進行變數引用[規定的] #}                <th>{{ i.username }}</th>  {# 這裡類似字典的取值 i[username] #}                <th>{{ i.sex }}</th>       {# 這裡類似i[sex] #}                <th>{{ i.email }}</th>     {# 這裡類似i[email] #}            </tr>        {% endfor %}                {# 注意結束for迴圈 #}    </table></body></html>

頁面呈現

另:如果前台認證錯誤,則需要更改一個django安全的配置

settings.py

Python學習---Django的基礎學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.