Django框架学习(二)

  1. 打开blog项目,在项目下创建一个views.py文件,我们可以在里面写一些我们要实现的业务逻辑.

  2. 编写views.py里的代码.

    from django.http import HttpResponse
    
    
    def index(request):
        return HttpResponse('index')
    
  3. 配置路由.

    #打开urls.py文件,在urlpatterns里添加一行
    from . import views
    
    urlpatterns = [
        # 第一个参数是在浏览器地址栏里要添加的,第二个参数是所要处理它的函数
        path('index/', views.index),     
    ]
    

  4. 启动项目.在地址栏输入’http://127.0.0.1:8000/index/’.

    python manage.py runserver
    

  5. 我们一般不在主应用里写后台逻辑,一般创建多个子应用,每个子应用实现不同的功能.

    # 创建子应用
    python manage.py startapp 子应用名
    

    这里我们创建一个viewapp的子应用.

    python manage.py startapp viewapp
    
  6. 将子应用在项目settings.py文件里面注册.

  7. 将子应用的路由添加到项目urls.py文件中.

  8. 在子应用视图里编写index函数.

    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse('子应用index')
    
  9. 配置子应用路由urls.py文件.

    from django.urls import path
    
    from viewapp import views
    
    urlpatterns = [
        path('index/', views.index),
    ]
    
  10. 启动项目.在浏览器地址栏输入127.0.0.1:8000/view/index/

  11. 获取get,post,put,delete请求所传递过来的参数.(子应用views.py文件)

    import json
    
    # get请求
    def t_get(request):
        name = request.GET.get('name')
        age = request.GET.get('age')
        print(name, age)
        return HttpResponse('get请求')
    
    # post请求
    def t_post(request):
        name = request.POST.get('name')
        age = request.POST.get('age')
        print(name, age)
        reutrn HttpResposne('post请求')
        
    # put请求
    def t_put(request):
        response = request.body
        res = json.loads(response)
        print(res)
        return HttpResponse('put请求')
    
    # delete请求
    def t_delete(request):
        response = request.body
        res = json.loads(response)
        print(res)
        return HttpResponse('delete请求')
    
    • get请求: 127.0.0.1:8000/view/get/?name=zhangsan&age=40&name=lisi

    • post请求: 通过postman软件来发送, 127.0.0.1:8000/view/post/ (如果没有的话,可以手写一个表单来发送post请求) 注:django框架默认开启了CSRF防护,目的是防止服务器遭受恶意攻击.可以去settings.py中将其注释掉.


    • put请求: 这个请求发送的是json格式的数据,

    • delete请求:同put请求

  12. 通过post请求获取用户上传的文件.

    # 在子应用urls.py文件中加上path('file/', views.file),
    import datetime
    import os
    from blog.settings import BASE_DIR
    
    def files(request):
        # 得到的是file对象
        file = request.FILES.get('img')
        # 取出file对象的name属性
        name = file.name
        # 通过用户上传文件时间拼接得到文件名
        filename = datetime.datetime.now().strftime('%y%m%d_%H%M%S') + os.path.splitext(name)[-1]
        filepath = os.path.join(BASE_DIR, 'uploads', filename)
        # 通过二进制写入
        with open(filepath, 'ab') as f:
            # 为防止文件过大, 将文件切割多部份写入
            for chunk in file.chunks():
                f.write(chunk)
        return HttpResponse('file写入')
    
  13. 通过get请求获取url中的参数.

    # 例如url = r'127.0.0.1:8000/view/get/2/?name=zhangsan&age=10',如果要取得数字2应该怎么写?
    # 其实只需在urls.py文件中设置正则匹配,然后起个别名,路由对应的函数就可以获取得到这个参数啦.
    
    # django为1.11版本url支持正则
    urlpatterns = [
        url(r'^get/(?P<page>\d/)', views.t_get),
    ]
    
    # django为2.2版本path不支持正则,要导入re_path
    from django.urls import re_path
    
    urlpatterns = [
        re_path(r'^get/(?P<page>d)/', views.t_get),
    ]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值