本次学习搭建网页,获取地址数据
djproject为Django应用 Student为Django子应用
一、加载静态网页
先看看如何加载静态HTML的
1、我们先在manage.py同级目录下创建一个文件夹存放html页面文件,例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是一个html页面</h1>
</body>
</html>
2、Django有个函数专门用来加载网页模板
render_to_response
我们在新建的子应用下面,views.py里写入:
如何创建子应用,可以看 django创建子应用
3、配置访问路径
到Django应用下,urls.py文件:
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path
import xadmin
from Student.views import hi
from djproject import settings
urlpatterns = [
path('xadmin/', xadmin.site.urls),
path('index/', hi),
]
4、到settings.py文件
在TEMPLATES的DIRS配置项中写上BASE_DIR+'/html'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+'/html'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
需要注意,这是引入存放html页面文件夹,如果不加上,会报出“找不到模板”错误
现在访问http://127.0.0.1:800/index/ 就是我们想要的结果了
二、获取URL上的参数
获取GET参数,request中有个方法为GET.get()
request.GET.get()就是获取url参数
例如:
http://127.0.0.1:8000/index/?username=zhangsan
def hi(request):
getUserName = request.GET.get('username')
print(getUserName)
return render_to_response("index.html")
打印结果为:zhangsan
还可以这样写:
request.GET['username']
但要注意,2种获取方式的区别:
获取字典中某个key的值有2种方式:
user = {'username':'张三',}
1、user.get('username')
2、user['username']
比如打印一个没有的key:
print(user.get('id'))
结果为None
print(user['id'])
结果会报错 KeyError
三、传递数据到HTML页面上
1、index.html页面添加:
<h1>这是一个html页面</h1>
<p>id:{{ user_id }}</p>
<p>名字:{{ username }}</p>
2、Student views.py:
#coding:utf-8
from django.shortcuts import render,render_to_response
# Create your views here.
def hi(request):
getUserName = request.GET.get('username')
print(getUserName)
user = {'user_id': 1, 'username': getUserName} #, 'username': '李四'
return render_to_response("index.html", user)
user是定义的字典,键可以重复,同名键值打印最后添加的,例如
user = {'user_id': 1, 'username': getUserName, 'username': '李四'}
在学完上述这些后,我们可以开始尝试做一个简单的表单:
index.html页面:
<form action="">
<p>用户名:<input type="text" name="username"></p>
<p>密码:<input type="password" name="pwd"></p>
<p><input type="submit" value="提交"></p>
<hr>
<div>
填入的用户是:{{ username }}<br>
填入的密码是:{{ pwd }}
</div>
</form>
views.py:
#coding:utf-8
from django.shortcuts import render,render_to_response
# Create your views here.
def hi(request):
user = {'username': '', 'pwd': ''}
if 'username' in request.GET:
user['username'] = request.GET.get('username')
if 'pwd' in request.GET:
user['pwd'] = request.GET.get('pwd')
return render_to_response("index.html", user)
结果展示: