ジャンゴFBV && CBVのアップロード・ファイルには、ルーティングシステムのルックアップ逆JSON

FBVとCBV

参考サイト

https://www.cnblogs.com/liwenzhou/articles/8305104.html#autoid-1-1-0

リクエストオブジェクト

参考サイト

https://www.cnblogs.com/liwenzhou/articles/8305104.html#autoid-2-0-2

アップロードファイルの例

def upload(request):
    """
    保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
    但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
    :param request: 
    :return: 
    """
    if request.method == "POST":
        # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
        filename = request.FILES["file"].name
        # 在项目目录下新建一个文件
        with open(filename, "wb") as f:
            # 从上传的文件对象中一点一点读
            for chunk in request.FILES["file"].chunks():
                # 写入本地文件
                f.write(chunk)
        return HttpResponse("上传OK")

#上传文件示例代码

ジャンゴJSON形式で出力

view.py、ビュー

def json(request):
    from django.http import JsonResponse
    from json import dumps
    data = {
        '素还真' : "半神半圣亦半仙",
        '一叶书' : "笑尽英雄",
        '叶小钗' : "啊",
    }

    data_str = dumps(data,ensure_ascii=False,sort_keys=True, indent=4, separators=(',', ':'))
    return  HttpResponse(data_str,content_type="application/json")
    # return  HttpResponse(data_str,)

    # return JsonResponse(data)

ジャンゴアップロードファイル

def upload(request):
    if request.method == "POST":
        # 获取文件名称
        filename =request.FILES['filename'].name
        print(filename)
        # 获取文件上传集合
        print(request.FILES)
        # 取上传的单个文件进行写入操作
        with open(filename, "wb") as f:
            # 以每个chunks为单元写入磁盘
            for i in request.FILES['filename'].chunks():
                f.write(i)
        #         返回响应值
        return HttpResponse("上传OK")
        # return HttpResponse("ok")
    else:
        return render(request,'user/upload.html')

ルーティングシステム

http://www.cnblogs.com/liwenzhou/p/8271147.html

  1. ファジーマッチする正規表現
  2. パケットマッチ - >ビュー関数に渡された位置パラメータに対応
  3. パケット名・マッチング- >機能に対応するビューに渡されたキーワード引数
    (2混在させないでください)

逆引き参照URL

URLパターンマッチングの別名に、本質的には、その後、特定のURLパスを取得するためにエイリアスを使用

  1. どのようにエイリアス?
    URL一致パターン、定義名=「エイリアス」に
  2. どのように使用するには?
    1. どの言語のテンプレートで:
      {%のURL "エイリアス" %} - >特定のURLパスが得られ
    2. ビューで使用する方法:
      django.urlsインポートリバースから

      リバース(「エイリアス」) - >特定のURLパスを与えるために、
  3. どのようにパラメータを渡すには?
    1. テンプレート言語:
      {%のURL "エイリアス" 2018 "NB" %}
    2. ビュー関数で
      セッター位置パラメータ:
      リバース( "エイリアス"、引数=(2018、 " NB"))

      キーワードのパラメータが渡さ:
      リバース( "エイリアス" kwargsから= { "年": 2018、 "タイトル": "NB"})
  4. 名前空間は、
    パターンマッチング、重複エイリアスを以下の別のURLアプリを防ぐために

おすすめ

転載: www.cnblogs.com/anyux/p/11922039.html