@类视图、路由、请求。(2020/8/7)

**

@类视图、路由、请求。(2020/8/7)

1.定义一个类视图
#类视图的优点是提高代码的复用性,可读性更高
#创建一个登陆注册界面类
from django import http
from django.views import View
#Register中的View 会继承View父类中的所有方法
class Register(View)#定义一个接受get方式的请求函数。!注意get 一定要全部写小写
    #request 是视图里面固定的一个参数 没有具体写法的要求 最好用request
    def get(self, request):
        #return 响应对象,构造响应报文,并返回给客户端
        return http.HttpResponse('这是一个get请求')
    #定义一个接受post方式的请求函数。!注意post 一定要全部写小写
    def post(self, request)return http.Http.Response('这是一个post请求')
    
#定义路由
from django.urls import path, repath
from . import Views
#路由是一个列表.
urlpatterns = [
    #书写路由的方式是 path('网址访问的路径', 'views.类视图名.as_view()')
    path('register/', views.Register.as_view()),
]
# 欢迎使用Markdown编辑器**加粗样式**

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

```python
2.类视图获取访问的参数
#测试地址
http://127.0.0.1:8000/test/register/?name=zs&age=18
1.定义一个类视图
#创建一个登陆注册界面类
from django import http
from django.views import View
#Register中的View 会继承View父类中的所有方法
class Parameter_Register(View)#定义一个接受get方式的请求函数。!注意get 一定要全部写小写
    #request 是视图里面固定的一个参数 没有具体写法的要求 最好用request
    #:param request 请求信息 包含了请求报文
    def get(self, request):
        #request.GET.get()方法是django里面获取键值的方法,获取到的是值。
        name = request.GET.get('name')
        age = request.GET.get('age')
        return http.HttpResponse('这是一个get请求')
    #定义一个接受post方式的请求函数。!注意post 一定要全部写小写
    def post(self, request):
    	name = request.GET.get('name')
        age = request.GET.get('age')	
    	return http.Http.Response('这是一个post请求')
    
#创建路由
from django.urls import path, re_path
from . import Views
urlpatterns = [
    #path方法写出的路由
    path('test/register', Views.Parameter_Register.as_view()),
    #re_path方法写路由
    #re_path路由内写的地址要义 正则表达式 来书写,原因是path方法中已经将正则方法封装好了
    #正则的写法是 r"^路径地址$" 以开头^和以结尾$都要写进去。
    #后续和path方法一样
    #正则表达式的书写方法要按照 r'^xxxx$'这个要求,不然会出现路由屏蔽。
    re_path(r'^test/register/$',Views.Parameter_Register.as_view()),
]
3.类视图获取请求json格式的数据
#测试地址
http://127.0.0.1:8000/json_data/
        #测试用 json 数据
		{
            "name":"zhangsan",
            "age":"18"
        }
#1.定义类视图
from django import http
from django.views import View
#需要导入json模块解析json文件
import json
class Json_info(View):
    def get(self, request):
        #request请求或许body内容
        json_data = request.body
        #json.loads()解析获取到的json_data的json文件,获取到的内容是一个字典
        json_dict = json.loads(json_data)
        #get 方法会获取json_dict内的value值
        name = json_dict.get('name')
        age = json_dict.get('age')
        print(name, age)
        return http.Http.Response('这是一个get请求')
    def post(self, request):
        #request请求或许body内容
        json_data = request.body
        #json.loads()解析获取到的json_data的json文件,获取到的内容是一个字典
        json_dict = json.loads(json_data)
        #get 方法会获取json_dict内的value值
        name = json_dict.get('name')
        age = json_dict.get('age')
        print(name, age)
        return http.Http.Response('这是一个post请求') 
4.路由
form django.urls import path, include, re_path
from django.contrib import admin
#django中的路由是在创建的总程序所包含的ursls里面
1.创建一个程序
#django-admin startproject -->文件名
django-admin startprojet Django_base_t
#总路由
urlpatterns = [
    path('admin/', admin.site.urls),
    #include方法会将子程序里面的所有子路由注册进去
    path('', include(users.urls))
]
#主程序里面的urls是总路由
2.创建一个子程序
#django-admin startapp -->文件名
dajango-admin startapp users
#创建子程序 需要在总路由里面 注册子路由
#子路由
urlpatterns = [
    #书写路由的方式是 path('网址访问的路径', 'views.类视图名.as_view()')
    path('register/', views.Register.as_view()),
]

总结:类视图可以提供代码的复用性和可读性。请求request会携带一些参数,这些传参包含四种方式:查询字符串数据、请求体数据、URL地址中特定部分的数据、请求头数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值