实现原理:
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# url(r'^index/', views.index),
url(r'^asdfasdfasdf/(\d+)/(\d+)/', views.index, name='indexx'),
url(r'^login/', views.login),
# url(r'^home/', views.home),
# views.Home.as_view()是固定用法
url(r'^home/', views.Home.as_view()),
# url(r'^detail/', views.detail),
url(r'^detail-(\d+).html', views.detail),
# url(r'^detail-(\d+)-(\d+).html', views.detail),
# url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail),
]
from django.shortcuts import render,HttpResponse,redirect
# Create your views here.
# USER_DICT = {
# 'k1': 'root1',
# 'k2': 'root2',
# 'k3': 'root3',
# 'k4': 'root4',
# }
USER_DICT = {
'1': {'name': 'root1', 'email': 'root@live.com'},
'2': {'name': 'root2', 'email': 'root@live.com'},
'3': {'name': 'root3', 'email': 'root@live.com'},
'4': {'name': 'root4', 'email': 'root@live.com'},
'5': {'name': 'root5', 'email': 'root@live.com'},
}
def index(request,nid,unid):
# indexx
print(request.path_info)
# /asdfasdfasdf/13/
# reverse 能反转
from django.urls import reverse
v = reverse('indexx', args=(90,88,))
print(v)
return render(request, 'index.html', {'user_dict': USER_DICT})
# def detail(request):
# nid = request.GET.get('nid')
# detail_info = USER_DICT[nid]
# return render(request, 'detail.html', {'detail_info': detail_info})
def detail(request, nid):
# print(nid, uid)
# return HttpResponse(nid)
detail_info = USER_DICT[nid]
return render(request, 'detail.html', {'detail_info': detail_info})
'''
def login(request):
# 判断用户获取数据方式是GET,就返回什么数据
if request.method == "GET":
return render(request, 'login.html')
# 判断用户获取数据方式是POST,就判断用户提交的数据是否正确
elif request.method == "POST":
u = request.POST.get('user')
p = request.POST.get('pwd')
if u == 'alex' and p == '123':
return redirect('/index/')
else:
return render(request, 'login.html')
else:
# PUT,DELETE,HEAD,OPTION...
return redirect("/index/")
'''
def login(request):
# 判断用户获取数据方式是GET,就返回什么数据
if request.method == "GET":
return render(request, 'login.html')
# 判断用户获取数据方式是POST,就判断用户提交的数据是否正确
elif request.method == "POST":
# radio
# v = request.POST.get('gender')
# print(v)
# v = request.POST.getlist('favor')
# print(v)
v = request.POST.get('fff')
print(v)
# 所有上传文件都上传到request.FILES
obj = request.FILES.get('fff')
print(obj, type(obj), obj.name)
# 把所上传的文件放到所建立的文件夹
import os
file_path = os.path.join('upload',obj.name)
# 把上传文件读取一点一点拿到
f = open(file_path, mode="wb")
for i in obj.chunks():
f.write(i)
f.close()
return render(request, 'login.html')
else:
# PUT,DELETE,HEAD,OPTION...
return redirect("/index/")
# def home(request):
# return HttpResponse('Home')
from django.views import View
class Home(View):
# 调用父类中的dispatch(相当于助理,)
def dispatch(self, request, *args, **kwargs):
print('before')
result = super(Home,self).dispatch(request, *args, **kwargs)
print('after')
return result
def get(self,request):
print(request.method)
return render(request, 'home.html')
def post(self,request):
print(request.method, 'POST')
return render(request, 'home.html')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{{ request.path_info }}" method="post">
<p><input type="text" name="user" placeholder="用户名"></p>
<p><input type="text" name="email" placeholder="邮箱"></p>
<input type="submit" value="提交">
</form>
<ul>
{% for k,row in user_dict.items %}
<!--target="_blank"表示在新页面打开-->
<li><a target="_blank" href="/detail-{{ k }}.html">{{ row.name }}</a></li>
{% endfor %}
</ul>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{% url 'indexx' nid=1 uid=3 %}" method="post">
<p><input type="text" name="user" placeholder="用户名"></p>
<p><input type="text" name="email" placeholder="邮箱"></p>
<input type="submit" value="提交">
</form>
<ul>
{% for k,row in user_dict.items %}
<!--target="_blank"表示在新页面打开-->
<li><a target="_blank" href="/detail-{{ k }}.html">{{ row.name }}</a></li>
{% endfor %}
</ul>
</body>
</html>
from django.shortcuts import render,HttpResponse,redirect
# Create your views here.
# USER_DICT = {
# 'k1': 'root1',
# 'k2': 'root2',
# 'k3': 'root3',
# 'k4': 'root4',
# }
USER_DICT = {
'1': {'name': 'root1', 'email': 'root@live.com'},
'2': {'name': 'root2', 'email': 'root@live.com'},
'3': {'name': 'root3', 'email': 'root@live.com'},
'4': {'name': 'root4', 'email': 'root@live.com'},
'5': {'name': 'root5', 'email': 'root@live.com'},
}
def index(request,nid,uid):
# indexx
print(request.path_info)
# /asdfasdfasdf/13/
# reverse 能反转
from django.urls import reverse
# v = reverse('indexx', args=(90,88,))
v = reverse('indexx', kwargs={'nid':'1','uid':'99'})
print(v)
return render(request, 'index.html', {'user_dict': USER_DICT})
# def detail(request):
# nid = request.GET.get('nid')
# detail_info = USER_DICT[nid]
# return render(request, 'detail.html', {'detail_info': detail_info})
def detail(request, nid):
# print(nid, uid)
# return HttpResponse(nid)
detail_info = USER_DICT[nid]
return render(request, 'detail.html', {'detail_info': detail_info})
'''
def login(request):
# 判断用户获取数据方式是GET,就返回什么数据
if request.method == "GET":
return render(request, 'login.html')
# 判断用户获取数据方式是POST,就判断用户提交的数据是否正确
elif request.method == "POST":
u = request.POST.get('user')
p = request.POST.get('pwd')
if u == 'alex' and p == '123':
return redirect('/index/')
else:
return render(request, 'login.html')
else:
# PUT,DELETE,HEAD,OPTION...
return redirect("/index/")
'''
def login(request):
# 判断用户获取数据方式是GET,就返回什么数据
if request.method == "GET":
return render(request, 'login.html')
# 判断用户获取数据方式是POST,就判断用户提交的数据是否正确
elif request.method == "POST":
# radio
# v = request.POST.get('gender')
# print(v)
# v = request.POST.getlist('favor')
# print(v)
v = request.POST.get('fff')
print(v)
# 所有上传文件都上传到request.FILES
obj = request.FILES.get('fff')
print(obj, type(obj), obj.name)
# 把所上传的文件放到所建立的文件夹
import os
file_path = os.path.join('upload',obj.name)
# 把上传文件读取一点一点拿到
f = open(file_path, mode="wb")
for i in obj.chunks():
f.write(i)
f.close()
return render(request, 'login.html')
else:
# PUT,DELETE,HEAD,OPTION...
return redirect("/index/")
# def home(request):
# return HttpResponse('Home')
from django.views import View
class Home(View):
# 调用父类中的dispatch(相当于助理,)
def dispatch(self, request, *args, **kwargs):
print('before')
result = super(Home,self).dispatch(request, *args, **kwargs)
print('after')
return result
def get(self,request):
print(request.method)
return render(request, 'home.html')
def post(self,request):
print(request.method, 'POST')
return render(request, 'home.html')
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# url(r'^index/', views.index),
url(r'^asdfasdfasdf/(?P<nid>\d+)/(?P<uid>\d+)/', views.index, name='indexx'),
url(r'^login/', views.login),
# url(r'^home/', views.home),
# views.Home.as_view()是固定用法
url(r'^home/', views.Home.as_view()),
# url(r'^detail/', views.detail),
url(r'^detail-(\d+).html', views.detail),
# url(r'^detail-(\d+)-(\d+).html', views.detail),
# url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail),
]