搭建django框架二
from表单
1.action 里边写相对路径,django会自动拼接ip+端口
注意: 路径前必须加/
/index/ 相当于 http://127.0.0.1:8000/index/
不写/ 相当于 http://127.0.0.1:8000/index/index/
2.GET 获取数据 POST获取数据
数据 是QueryDict数据类型
返回字符串数据使用HttpResponse
返回html页面使用render(request,'index.html')
if request.method == 'GET':
return render(request, 'login.html')
else:
username = request.POST.get('username')
password = request.POST.get('password')
if username == 'dong' and password == '123':
return HttpResponse('登录成功!')
else:
return HttpResponse('登录失败')
post请求
提交数据关掉一个认证机制,settings配置注释掉
'django.middleware.csrf.CsrfViewMiddleware',
urls.py 配置路由
url(正则,视图逻辑 参数 别名)
url(r'^index/', views.index),
表示以index/ 开头的都可以访问到,前置导航斜杠不需要加,后边的斜杠必须写
django url默认必须在最后加斜杠 ,因为 APPEND_SLASH =true
如果没有加 会重定向 加上斜杠再访问一次
可以在settings设置里去掉 APPEND_SLASH =false
无名分组
无名分组 有几个分组,参数写几个(参数是位置参数)
url(r'^books/(\d{4})/', views.books),
有名分组
有名分组
有名分组 给分组命名 ,参数是关键字参数,形参名字要和分组名对应好
参数位置没有要求
url(r'^books/(?P<year>\d{4})/(?P<month>\d{1,2})/', views.books_month),
def books_month(request,year,month):
print('访问月')
print(year,month)
return HttpResponse(year+month)
默认值设置
url(r'^dong/$',views.dong),
url(r'^dong/(?P<name>\w+)/',views.dong),
def dong(request,name ='周雅婷'):
return HttpResponse(name)
url 分发
INSTALL_APPS
INSTALL_APPS =[
这两种写法是一样的
'app01.apps.App01Config', // app01下的app01.py下的App01Config类的属性name='app01';
'app01';
]
url分发 include
用户请求 会发送到项目下的urls 根据不同的app urls再接着分发到每个app下的urls
url(r'^app01/',include('app01.urls')),
url(r'^app02/',include('app02.urls')),