Django 라우팅 및 함수 뷰
django에서uri와 논리 함수의 대응 관계를 우리는 루트 시스템이라고 부른다
위정태
위정태는 정적 파일에 대한 것이다. 예를 들어https://www.cnblogs.com/hesujian/p/11165818.html
우리는 위정태라고 부른다. 왜냐하면 그는 사실 html정태 페이지가 아니라 html정태 페이지로 위장했을 뿐이다
거짓 정태의 장점:
1. 미관(전통적인 물음표 결합은 난잡해 보인다)
2. seo(검색엔진 최적화 기술), 검색엔진은 정적 페이지를 수록하는 것을 좋아하기 때문에 모두 위정적으로 수록할 기회를 늘린다.
가상 및 라우팅 배포 실현
기왕 우리가 위정적인 URL으로 서버에 접근한 이상 서버는 어떻게 필요한 값을 얻을 수 있습니까
예를 들어 우리는 다음과 같다.http://127.0.0.1:8000/up_student/?id=12&name=hua
위장:http://127.0.0.1:8000/up_student/12/hua/
백그라운드에서 데이터를 수신하려면 루트 배달 기술이 필요하다
루트 분배 및 백엔드에서uri와 일치할 때 정규 표현식의 그룹을 통해 필요한 값을 그룹으로 나누어 처리하는 함수에 전송합니다
코드:
# 1、 ,
def up_student(request,id,name):
print(id,name)
urlpatterns = [
url(r'^up_student/(\w+)/(\w+)', up_student),
]
# 2、 ,
def up_student(request,name,id):
print(id,name)
urlpatterns = [
url(r'^up_student/(?P\w+)/(?P\w+) ', up_student)
]
루트 정규
1,$부적, 어떤 결말
url(r'^test/',test),
# /
url(r'^test/$',test)
# /
2, 일반
url(r'^',test)
모든 URL이 일치하며 URL이 일치하지 않을 때 되돌아오는 페이지로 사용할 수 있습니다 (404)
그래서 우리 어댑터는 반드시 마지막에 두어야 한다. 그렇지 않으면 그가 먼저 어댑터를 일치시켜서 원래의 URL에 접근할 수 없다
역방향 경로
역방향 루트는 주로form표를 대상으로 하는데 우리의uri가 변화할 때 모든 링크도 상응하는 변화가 발생해야 한다
모든 역방향 루트는 form 폼의 액션을 ui의 변화에 따라 변화시킬 수 있습니다
백그라운드 url:name 속성 설정
url(r'^sdsdsdsad/',test,name="xxx")
전단form 폼: action이 뒤의name 변화에 따라 변경됨
django创建app
我们会把不同类型的逻辑函数和uri放到不同的文件里,这个文件就成为app
创建有两种方式
1、pycharm创建项目时创建,只能创建一个
2、命令行创建,进入到项目的路径下输入
python manage.py startapp 自定义名称
创建完的app文件中有如下就和文件
admin.py: 写和django-admin相关的配置
apps: 对app的配置
models: 数据表模型
views: 视图函数
tests: 测试
路由分组
# include
from django.conf.urls import include
# urls.py
url(r'^app01/', include('app01.urls'))
# app urls.py
#
from app01 import views
url('^test',views.test)
함수 보기
함수 보기는 주로 논리 함수를 쓰는데, 함수 보기는 주로 두 가지로 나뉜다
1. FBV function based view 쓰기 함수 처리 논리
2, CBV class based view 클래스 처리 논리
CBV에서
url 변경 필요
url(r'^login/', views.Login.as_view()),
논리를 처리하는 클래스도View라는 클래스를 계승해야 한다
from django.views import View
class Login(View):
def dispatch(self, request, *args, **kwargs):
super(Login, self).dispatch(request, *args, **kwargs)
#
def get(self):
pass
def post(self):
pass
# get get ,post post
# dispatch ,
# , , ip
제출 방식
"""
get :
post :
delete :
put :
patch :
"""
전재 대상:https://www.cnblogs.com/hesujian/p/11191605.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.