Django命令执行
python manage.py runserve #启动服务
python manage.py startapp #创建应用
python manage.py migrate #数据库迁移
python manage.py #直接执行可列出所有子命令
主路由 -urls.py
语法格式
urlpatterns = [
path('page/2003/', views.page_2003_view),
...#此处配置主路由
]
file:<项目同名文件夹下>/urls.py
path()函数
导入 -from django.urls import path
语法 -path(route,views,name=None)
参数:
1.route:字符串类型,匹配的请求路径
2.views:指定路径所对应的视图处理函数的名称
3.name:为地址起别名,在模板中地址反向解析时使用
from django.urls import path
from .import view
urlpatterns = [
path('admin/', admin.site.urls),
path('page/2003/', views.page_2003),
path('page/2004/', views.page_2004),
]
视图函数 views.py
语法格式
def xxx_view(request[,其他参数...]):
return HttpResponse对象
file:<项目同名文件夹下>/views.py
from django.http import HttpResponse
def page_2003_view(request):
html = "<h1>第一个页面</h1>"
return HttpResponse(html)
path转换器
语法:<转换器类型:自定义名>
作用:若转换器类型匹配到对应数据类型,则将数据按照关键字传参的方式传递给视图函数
例子:path(‘page/int:page’,views.xxx)
路由格式:http://127.0.0.1:8000/整数/操作字符串[add/sub/mul]/整数;从路由中提取数据,做相应的操作后返回给浏览器
re_path()函数
#http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字
re_path(r'^birthday/(?P<y>\d{4})/(?P<m>\d{1,2})/(?P<d>\d{1,2})$',views.birthday_view),
在url的匹配过程中可以使用正则表达式进行精确匹配
def birthday_view(request,y,m,d):
html = "生日为%s年%s月%s日"%(y,m,d)
return HttpResponse(html)
请求和响应
GET请求:查询字符串 -少量数据传递
POST请求:专用于浏览器提交数据
GET、POST由视图函数接收请求
if request.method =='GET':
处理GET请求时的业务逻辑
elif request.method =='POST':
处理POST请求的业务逻辑
else:
其他请求业务逻辑