一、get方法访问视图
- 新建一个django项目
django-admin.py startpoject myweb(项目的名字)
- 进入项目文件夹下面,创建一个app
python manage.py startapp blog或
django-admin.py startapp blog(app的名字
- 找到myweb/myweb/setting.py修改相关内容
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'(app的名字),
)
备注: 这一步是干什么呢? 新建的 app 如果不加到 INSTALL_APPS 中的话,django 就不能自动找到app中的模板
文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件) , 后面你会学习到它们分别用来
干什么.
- 在app下面创建一个templates包,创建一个find.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
this 测试!
<div>
<b>{{x}}</b> <b>{{y}}</b> <b>{{z}}</b>
</div>
</body>
</html>
- 定义视图函数(访问页面时的内容)
在blog中的目录中,更改view.py中的源码
def find(request):
if request.GET:
x = request.GET['x']
y = request.GET['y']
z = int(x) + int(y)
return render(request, 'find.html', {'x': x, 'y': y, 'z': z})
上面定义了一个find()函数,第一个参数必须是request,与网页发来的请求有关,request变量里面包好了get
和post的内容,用户浏览器,系统等信息在里面
- 然后终端上运行python manage.py runserver,会出现以下
Performing system checks...
System check identified some issues:
WARNINGS:
blog.People.age: (fields.W122) 'max_length' is ignored when used with IntegerField
HINT: Remove 'max_length' from field
System check identified 1 issue (0 silenced).
August 29, 2017 - 10:56:24
Django version 1.11, using settings 'myweb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
- 打开浏览器访问
http://127.0.0.1:8000/find/?x=10&y=10
就会看到以下的结果
this 测试!
10 10 20
二、post方式访问视图
- 新建一个django项目
django-admin.py startpoject myweb(项目的名字)
- 进入项目文件夹下面,创建一个app
python manage.py startapp blog或
django-admin.py startapp blog(app的名字
- 找到myweb/myweb/setting.py修改相关内容
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'(app的名字),
)
备注:同上
- 在app下面创建一个templates包,创建一个find.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<form action="/post_demo" method="post">
<input type="text" name="x">
<input type="text" name="y">
<!--post提交必须加上-->
{% csrf_token %}
<input type="submit" value="提交">
</form>
</div>
</body>
</html>
- 定义视图函数(访问页面时的内容)
在blog中的目录中,更改views.py中的源码
def post_demo(request):
if request.method == "POST":
x = request.POST['x']
y = request.POST['y']
z = int(x) + int(y)
print(z)
return render(request, 'find.html')
上面定义了一个find()函数,第一个参数必须是request,与网页发来的请求有关,request变量里面包好了get
和post的内容,用户浏览器,系统等信息在里面
- 然后终端上运行python manage.py runserver,会出现以下
Performing system checks...
System check identified some issues:
WARNINGS:
blog.People.age: (fields.W122) 'max_length' is ignored when used with IntegerField
HINT: Remove 'max_length' from field
System check identified 1 issue (0 silenced).
August 29, 2017 - 10:56:24
Django version 1.11, using settings 'myweb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
- 打开浏览器访问
http://127.0.0.1:8000/post_demo
就会看到以下的结果
两个输入框,一个提交按钮
输入10,10,点击提交
查看终端 输出20
打开调试器,就会看到
form data:
x: 10
y: 10
csrfmiddlewaretoken:"v6AR7UCs2h0yJQh0g4DrHErbDKlUvRSI6r7yD8WoRTmsWyexS9ASf3zkHc15f2Q8"
网友评论