安装Django:pip install django==2.2 #指定版本为2.2 新建项目:django-admin startproject myblog # myblog为项目名 新建APP:python manage.py startapp App # App为名 启动项目:python manage.py runserver 生成数据库迁移文件:python manage.py makemigrations 执行迁移:python manage.py migrate 创建超级管理员:python manage.py createsuperuser
视图本质上是一个函数(类),这个函数第一个参数类型是HttpRequest,它返回一个HttpResponse实例。 作用:
响应模板重定向直接响应字符串响应错误模板json数据视图的第一个参数必须是HttpRequest类型的对象 常用属性
GET:一个类似于字典的QueryDict对象,包含get请求方式的所有参数POST:一个类似于字典的QueryDict对象, 包含post请求方式的所有参数COOKIES:一个标准的PYTHON字典,包含有所有cookie,键和值都是字符串SESSION:一个类似于字典的对象,表示当前的会话,只有当django启用会话的支持时可用method:一个字符串,表示请求使用的Http方法,POST,GETHttpResponseRedirect(redirect)
不带参数的重定向: from django.shortcuts import HttpResponseRedirect,reverse, redirect # urls.py urlpatterns = [ path('', views.index), path('^list/$', views.list_user), ] # views.py def index(request): return render(request, 'index.html') def list_user(request): return redirect('list/') 带参数的重定向: from django.shortcuts import HttpResponseRedirect,reverse, redirect # urls.py urlpatterns = [ path('repath/<int:num>/', views.repath), path('list/<name>/<age>/', views.list_user), ] # views.py def repath(request, num): return redirect('list/asd/1') def list_user(request, name, age): return HttpSponse('name={}, age={}'.format(name, age))根据namespace和name查找真实路径
# urls.py app_name = 'App' # 应用的命名空间 urlpatterns = [ path('', views.index, name='index'), path('show/<name>/<int:age>/', views.show, name='show'), re_path('^call/(\d{4}-\d{8})/$', views.call, name='cal'), path('req/', views.req_res, name='reqres') ] # views.py def index(requset): return HttpResponse('首页') def show(request, name, age): return HttpResponse(name + ':' + str(age)) def call(request, phone): return HttpResponse(phone) def req_res(request): # return redirect(reverse('App:index')) # 不带参数 # 如果参数有名字,必须使用关键字传参 # return redirect(reverse('App:show', kwargs={'name': 'admin', 'age': 20})) return redirect(reverse('App:cal', args=('0123-12345678',)))