Django 基本使用
生活随笔
收集整理的這篇文章主要介紹了
Django 基本使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Django 基本使用
Django 安裝
pip install django
Django 創建項目
django-admin startproject 項目名稱
Django 創建應用
python manage.py startapp app名稱
Django 啟動項目
python manage.py runserver IP:PORT
添加一個顯示當前時間的功能
- 修改view.py 文件
from django.shortcuts import render,HttpResponse
import datetime
def timer(request):
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
return HttpResponse(now)
- 修改urls.py 文件
from django.contrib import admin
from django.urls import path
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
path('timer/', views.timer),
]
跳轉到指定HTML頁面
- 在templates目錄下添加一個HTML文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
登錄
</body>
</html>
- 在 view.py 中指定跳轉到的頁面
from django.shortcuts import render,HttpResponse
def login(request):
return render(request, "login.html")
- 修改 urls.py 文件
from django.contrib import admin
from django.urls import path
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login),
]
獲取頁面提交的數據
- 在templates目錄下添加一個HTML文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8000/auth/" method="post">
{% csrf_token %}
<input type="text" name="name">
<input type="password" name="password">
<input type="submit">
</form>
</body>
</html>
- 在 view.py 中指定跳轉到的頁面
from django.shortcuts import render,HttpResponse
def login(request):
return render(request, "login.html")
def auth(request):
print(request.POST)
print(request.POST.get("name"))
print(request.POST.get("password"))
return HttpResponse("OK")
- 修改 urls.py 文件
from django.contrib import admin
from django.urls import path
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login),
path('auth/', views.auth),
]
PS:如果沒有返回數據可以嘗試注釋掉 setting.py 中的 'django.middleware.csrf.CsrfViewMiddleware'
獲取通過URL傳過來的值
- 修改urls.py文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r"^login/(\w*)$", views.login),
]
- 修改 view.py 文件
from django.shortcuts import render,HttpResponse
def login(request, name):
return HttpResponse(name)
有名分組
- 修改urls.py 文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r"^login/(?P<分組名稱>\w*)$", views.login),
]
- 修改 view.py 文件
from django.shortcuts import render,HttpResponse
def login(request, 分組名稱):
return HttpResponse(分組名稱)
分發
- 修改urls.py 文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
urlpatterns = [
path('admin/', admin.site.urls),
url(r'vedio/', include('vedio.urls')),
]
- 在vedio 應用下新建一個urls.py 文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^login/', views.login),
]
反向解析
- 修改urls.py 文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r"^login/(\w*)$", views.login, name='login'),
]
- 修改 login.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8000/{% url 'login' %}" method="post">
<input type="text" name="name">
<input type="password" name="password">
<input type="submit">
</form>
</body>
</html>
Request 和 Response 對象的基本使用
- urls.py 文件的修改
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r"^login/$", views.login, name='login'),
]
- view.py 文件的修改
from django.shortcuts import render,HttpResponse,redirect
def login(request):
"""
request 中的屬性和方法
"""
print(request.method) # 請求方式
print(request.path) # 請求路勁
print(request.POST) # POST 請求的數據
print(request.GET) # GET 請求的數據
print(request.META) # 請求頭
print(request.get_full_path()) # 請求的完整路徑
print(request.is_ajax()) # 判斷請求是否是 Ajax請求
"""
response 的三種形式
HttpResponse()
render()
redirect() 重定向
"""
# return HttpResponse('OK')
# return render(request, 'login.html')
# return redirect('login.html')
name = ['GetcharZp', 'GetcharMcx']
# return render(request, 'login.html', locals())
import datetime
now = datetime.datetime.now()
return render(request, 'login.html', {"name": name, "now": now})
- login.html 文件的修改
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
返回一條數據:
<!-- 深度查詢 句點符 -->
{{ name.0 }}
<br>將數據以循環的形式輸出:
<ul>
{% for foo in name %}
<li> {{ forloop.late }} {{ forloop.counter }} {{ foo }}</li>
{% endfor %}
<br>當前時間(filter)
<!--
date 時間過濾器 |date:"Y-m-d"
default 默認過濾器 |default:"改內容暫時還木有"
length 長度過濾器 |length
filesizeformat 文件大小過濾器 |filesizeformat
slice 切片過濾器 |slice:"1:3"
truncatechares 字符過濾器 |truncatechares:9
truncatewords 單詞過濾器 |truncatewords:7
safe 標識標簽不用轉義 |safe
-->
{{ now|date:"Y-m-d" }}
</ul>
</body>
</html>
模板繼承
- urls.py 文件的修改
from django.contrib import admin
from django.urls import path
from vedio import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
]
- view.py 文件的修改
from django.shortcuts import render,HttpResponse,redirect
def index(request):
return render(request, "index.html")
- index.html 文件的修改
{% extends 'base.html' %}
{% block content %}
<p>GetcharZp Index</p>
{% endblock %}
- 新建一個base.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
.header {
width: 100%;
height: 90px;
background-color: #65ccff;
}
</style>
</head>
<body>
<div class="header"></div>
{% block content %}
{% endblock %}
</body>
</html>
總結
以上是生活随笔為你收集整理的Django 基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《模式识别导论》特性选择与特征提取概要
- 下一篇: 基于PCA方法的ORL人脸识别及Pyth