一、Django简介
1、MVC设计模式(开发模式)
2、MTV设计模式(开发模式)
二:路由配置
三:URL动态传参
1、动态捕获参数
2、动态传递参数
3、对捕获的参数进行类型转换
四:re_path()正则匹配路径
五:视图函数加载模板
六、补充:
1.启动开发服务器:
2、创建应用
七、附录
1、Django/urls.py #主路由
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/',include('myapp.urls')),
path('myapp2/',include('myapp2.urls'))
]
2、Django/myapp/urls.py #子路由
from django.urls import path, re_path
from myapp.views import *
urlpatterns = [
path('hello/',hello),
path('book/<author>/<book_name>/',show_book),#捕获参数
path('add/<int:a>/<int:b>/',add), #int:对捕获的参数转换
re_path(r'welcome/',welcome),
re_path(r'time/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/',show_date)
]
3、Django/myapp/urls.py #子路由
from django.urls import path
from myapp2.views import *
urlpatterns = [
path('gologin/', go_login),
path('login/',login),
]
4、Django/myapp/view.py #视图函数
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def hello(request):
return HttpResponse("<h3 style='color:red'>hello,欢迎学习</h3>")
def show_book(request,author,book_name):
info = "<h3><span style='color:blue'>" + author +"</span>写了一本名为<span style='color:red'>" +book_name +"</span>的书</h3>"
return HttpResponse(info)
def add(resquest,a,b):
result = a + b
return HttpResponse("相加结果是:"+str(result))
def welcome(request):
return HttpResponse("<h3>北京欢迎你</h3>")
def show_date(request,year,month,day):
return HttpResponse("<h3>接收的年份是:"+year+";月份是:"+month+",日期是:"+day+"</h3>")
5、Django/myapp2/view.py #视图函数
from django.shortcuts import render
def go_login(request):
return render(request,'login.html')#加载模板
def login(request):
loginname = request.POST["loginname"]#接收参数
loginpwd = request.POST["loginpwd"]
if loginname == "tom" and loginpwd == "123456":
return render(request,'success.html',{'username':loginname}) #加载模板
else:
return render(request,'login.html',{'msg':"用户名错误,请从新登录"})
6、Django/myapp2/templates/longin.html #视图模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆页面</title>
</head>
<body>
<h3 style="color: red">{{msg}}</h3>
<form action="/mypp2/login/" method="post">
登录名:<input type="text" name="loginname"/><br/>
登陆密码:<input type="password" name="loginpwd"/><br/>
<input type="submit" value="登录"/>
</form>
</body>
</html>
7、Django/myapp2/templates/success.html #视图模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>成功登录</title>
</head>
<body>
恭喜{{username}},登陆成功!
</body>
</html>