一、环境配置
-
安装django
pip install django
判断已安装: python -m django --version
-
创建项目
django-admin startproject jobapp
-
File->open->驰星->projects->project_django1->django_jobapp
二、文件目录
- django_jobapp->manage.py:启动配置、实用命令行工具
- django_jobapp项目里:django_jobapp文件夹:启动模块
- django_jobapp->django_jobapp->settings:配置模块
ROOT_URLCONF = ‘django_jabapp.urls’
- django_jobapp->django_jobapp->urls:路由
- django_jobapp->django_jobapp->wsgi.py:一个WSGI兼容的Web服务器的入口,以便运行项目
三、启动
-
python manage.py runserver 0.0.0.0:8000 :启动
localhost:8000/
-
ctrl+c :停止
四、应用程序
-
python manage.py startapp user :创建用户模块(创建应用程序)
jobapp:项目
user:应用程序 -
配置一级路由 /jobapp/urls.py
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('user/',include('user.urls')) ]
-
配置二级路由 /user/urls.py
from django.urls import path from django.conf.urls import url from . import views urlpatterns = [ path('',views.index,name='index'), path('add/', views.add, name='add'), url(r'add\w*/',views.add,name='add'), path('regist/', views.regist, name='regist'), path('get_user/',views.get_user,name='get_user') ]
-
user->views添加相应的函数
def index(request): return HttpResponse('user...index...') ...
五、路由系统
-
路由
path('index/',views.index,name='index') # index后面的\必须要有 # 路由传参(地址栏) path('getuser/<int:id>',views.getuser,name='getuser') # 路由传参(urls.py文件中写入) path('getuser/',views.getuser,{'id':12},name='getuser') # views.py def getuser(request,id): return HttpResponse('--->'+str(id))
-
基于正则的路由
from django.conf.urls import url,include urlpatterns = [ url(r'^get_user\w*/',views.get_user,name='get_user'), url(r'^index/(\d*)',views.index) ] 利用正则表达式传递参数 #此时id的类型为str url(r'^getuser\w*/(?P<id>\w*)', views.getuser,name='getuser') # urls.py from django.conf.urls import url from django.contrib import admin from . import view from . import personal urlpatterns = [ #匹配空路由相当于path(r'', view.hello), url(r'^$', view.hello), url(r'^person\w*$', personal.login) ]
-
路由重定向(同一模块中)
reverse:反向解析url
url(r'^redirect_from\w*/(?P<userid>\w*)',views.redirect_from,name='redirect_from'), url(r'^redirect_to\w*/(?P<id>\w*)',views.redirect_to,name='redirect_to')
在/user/views.py中,redirect_from获取参数跳转到redirect_to
# 路由重定向 def redirect_from(request,userid): uurl=reverse('redirect_to',args=(userid+'111',)) return redirect(uurl) def redirect_to(request,id): return HttpResponse('跳转到这里'+id)
-
模块间跳转
reverse(‘模块名:路由名’)
return redirect('/resume/add') return redirect(reverse('resume:add')) return redirect(reverse('position:getall',kwargs={'id':110}))