Python 3 Django 의 View 상세 설명
22250 단어 Python
이 글 은 Luzhuo 에서 작 성 했 습 니 다. 이 메 시 지 를 보관 하 십시오.
다음 코드 는 Python 3.6.1 을 예 로 들 면 Less is more!Python 3.6.1 Django 2.0.2 프로젝트 명: Djangoview 응용 프로그램 이름: booktest
URLconf
경로 설정 URL
http://blog.csdn.net/Rozol/article/details/79526328
의 manage.py
- > __main__
- > Django_view.settings
의 settings.py
- > ROOT_URLCONF = 'Django_view.urls'
에서 설정 하면 루트 경로 urls.py
이 응용 프로그램의 관련 경 로 를 저장 하 는 데 사용 합 니 다.urls.py
파일 에 있 는 urls.py
목록 에 추가 urlpatterns
하면 이 응용 프로그램 과 관련 된 url 은 모두 이 응용 프로그램 path('booktest/', include('booktest.urls'))
과 일치 합 니 다 urls.py
def index(request): pass
의 urls.py
추가 경로urlpatterns
path('', views.index),
from django.urls import path, register_converter, re_path
from . import views, converters
#
register_converter(converters.NumberConverter, 'mt')
'''
<> url
--- ---
str:
int: int
slug: ASCII + + + , : a-b-c1-d
uuid: UUID( -, ), : 123a-213b-22d2f
path: ( '/')
--- ---
converters -> register_converter ->
--- ---
re_path , : ?Ppattern
URL
1. path path('', views.index, name='index')
2. reverse('year', args=(year,))
'''
urlpatterns = [
path('', views.index, name='index'), #
path('' , views.detail, name='detail'), #
path('times///' , views.times, name='times'), # name
path('mon/' , views.mon, name="mon"), #
re_path('times/(?P[0-9]{4})/(?P[0-9]{2})/' , views.times, name='times'), # ,
path('year//' , views.year, name='year'), # URL
]
-
#
class NumberConverter:
regex = '[0-9]{2}' #
# view , ValueError
def to_python(self, value):
return int(value)
# Python URL
def to_url(self, value):
return '%d' % value
오류 보기 설정
python manage.py runserver 80
에서 수정: settings.py
'DIRS': [os.path.join(BASE_DIR), 'templates'],
에서 수정: settings.py
DEBUG = False
에서 수정: settings.py
# --- Request ---
'''
Request
request.path #
request.method # GET/ POST
request.encoding # , utf8
request.GET # get
request.POST # post
request.FILES #
request.COOKIES # cookie
request.session #
'''
# --- GET ---
def get_request(request):
# /getrequest/?a=1&b=2
a = request.GET['a']
b = request.GET['b']
c = 0
# return HttpResponse("a: {}, b:{}, c:{}".format(a, b, c)) # a: 1, b:2, c:0
# /getrequest/?a=1&a=2&b=3
a_all = request.GET.getlist('a')
# return HttpResponse("a_all: {}".format(a_all)) # a_all: ['1', '2']
# post ( : {% csrf_token %} )
def post_test(request):
return render(request, 'booktest/posttest.html')
# --- POST ---
'''
response.content:
response.charset:
response.status_code:
content-type: MIME
response.write(content):
response.flush():
response.set_cookie(key, value='', max_age=None, expires=None): cookie, max_age int , expires datetime ,
response.delete_cookie(key): cookie
'''
def post_request(request):
name = request.POST['name']
hobby = request.POST.getlist('hobby')
return HttpResponse("name: {}, hobby:{}".format(name, hobby))
JSon 데이터 수신
ALLOWED_HOSTS = ['*']
가 아니라면 데이터 () # --- Response ---
def response(request):
# response = HttpResponse()
# response.set_cookie('key', 'value')
# return response
# HttpResponseRedirect ( : redirect)
# return redirect(reverse('post_test', args=()))
# JsonResponse json
# return JsonResponse({'key': 'value'})
#
return render(request, 'booktest/posttest.html', {'key': 'value'})
session 현재 세 션 대상
# --- ---
'''
settings.py INSTALLED_APPS 'django.contrib.messages' ( )
MIDDLEWARE 'django.contrib.sessions.middleware.SessionMiddleware' ( )
session
:
get(key, default=None): key value
has_key(key): key
set_expiry(0): session : - , int- , timedelta(days=5)- , 0- , None-
clear():
flush(): Cookie
del request.session['member_id']:
session (`settings.py` )
SESSION_ENGINE='django.contrib.sessions.backends.db' # ,
SESSION_ENGINE='django.contrib.sessions.backends.cache' #
SESSION_ENGINE='django.contrib.sessions.backends.cached_db' #
'''
def session(request):
# ( )
request.session['name'] = 'abcde'
name = ' '
# ( )
boolean = request.session.has_key('name')
if boolean:
name = request.session['name']
request.session.set_expiry(0)
return render(request, 'booktest/session.html', {'name': name})
POST 가 Model 에 데 이 터 를 저장 해 달라 고 요청 한 사례
import sys
import django
from django.shortcuts import render
from django.http import *
import json
from AppRecorder.models import *
def update(request):
for key in request.POST.items():
response_json = key[0]
break
fail = []
for item_json in json.loads(response_json):
try:
bean = AppInfo()
bean.app_icon = item_json['icon']
bean.app_name = item_json['name']
bean.app_version = item_json['version']
bean.app_packageName = item_json['packageName']
bean.app_addTime = item_json['addTime']
bean.app_mark = MarkShelf.objects.first()
bean.app_type = TypeShelf.objects.first()
bean.app_category = CategoryShelf.objects.first()
bean.save()
print(bean)
except django.db.utils.IntegrityError:
print(" , : {}".format(bean.app_packageName))
except:
fail.append(bean.app_packageName)
types, value, back = sys.exc_info()
sys.excepthook(types, value, back)
fail_json = json.dumps(fail, indent=4, default=lambda obj: obj.__dict__)
return HttpResponse(fail_json)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.