Django读作zhan'gou,是web开发框架
3、 URL
url是统一资源定位符
scheme://host:port/path/?query-string=xxx#anchor
scheme:访问的协议,http,https,ftp
host:主机名
path:路径 archor:锚点
4、创建项目: 命令: django-admi9n startproject 项目名称
创建应用模块: python manage.py startapp app名称 创建app
运行项目:python manage.py runserver 默认端口号8000
python manage.py 子命令 执行命令
settings.py 项目设置
urls.py url路由 wsgi.py 与wsgi协议兼容的web服务器入口
app是项目的一个模块,所有url请求由app处理
5、urlpattern=
[ path('admin/',index),
path('book/',views.book_detail), ]
from django.shortcuts import HttpResponse
def index(request):
return HttpResponse("输出字符串")
6、视图函数写在各个app的views.py中
from django.shortcuts import render,HttpResponse
#在url中携带参数:1、.com/s?wd=python 2、8080/book/2
def book_detail(request):
bookId = request.GET.get('id')
return HttpResponse(f"id是{bookId}")
urlpatterns中: path('book/<int:bookId'>,views.book_detail_path) #bookid非整形就报404,除了int还有slug型之类的
7、path(route,view,name='none',kwargs=none)
route:url匹配,可传参数,参数可指定类型<int:id> str不能有/ int slug(_-数字英文) uuid字符串
path:非空英文字符串,可包含/
view:视图函数或类试图.as_view()或django.urls.include()
name:给url取名字
8、在模块中创建模块自己的urls.py
from django.urls import path
from .import views
urlpatterns =
[path('list',views.movie_list,name='movie_list')
]
app_name="movie" 指定应用命名空间
之后在总urls.py中加上
path('movie/',include("movie.urls")) 即可汇进url
9、url反转
reverst('list') 从name反转回url 有命名空间就 reverse('book:list')
传参数: reverse("book_str",kwargs={"book_id":1})