Python 3+Django get/post要求実現教程詳細
説明する
前に「Python 3+PyCharm+Django+Django REST frame ebook開発教程」を書きましたが、直接にrestを紹介したいと思って終わりました。しかし、振り返ってみると、一つはレストがデカップしながらフレームを複雑にしています。多端末がないと、そのレスは複雑さを下げずに複雑さを増しました。二つは基本的なgetとpostが自分を実現するかそれとも半日を見ます。djangoの従来のMVC開発を紹介するために、もう一枚書く必要があります。
環境構築プロジェクトは同じようなrest化部分を作成する前(2.5及び前)に操作すればいいです。説明を繰り返さないようにします。ここで作成したプロジェクトはdjango 1です。初期ディレクトリの構造は以下の通りです。
二、環境配置
自分で作成したプロジェクトがdjango 1でない場合、以下のすべてのdjango 1を自分のプロジェクト名に変更します。
2.1カスタムテンプレートのパスとテンプレートの作成
編制django 1/django 1/setting.pyは、TEMPLATES変数に位置決めし、DIRSの値をBASE_に変更します。DIR+「/django 1/templates」、
django 1/django 1ディレクトリの下でtemplatesフォルダを作成し、その下でget.html、post.html、reult.3つのファイルを作成します。
get.1は、get提出のために使用されます。
Djangoのすべての要求ルートはurls.pyによって設定されています。たとえ存在する静的ファイルでもルーティングを設定してからアクセスできます。
指名手配django 1/django 1/urls.pyは、以下の内容に修正されました。
2.2にget.html、get、post.を配置しました。postの四つの要求はそれぞれview.get_に渡しました。html、view.get、view.post_)、view.postは処理を行います。今回はこの四つの処理ロジックを実現します。
django 1/django 1フォルダでview.pyを作成し、以下の内容を書き込みます。
また、上記のように詳細なエラーメッセージを返しました。これは情報セキュリティではタブーですが、djangoではないです。DjangoではデフォルトでDEBUGモードをオンし、settings.pyではDEBUG=Falseを設定し、ALLOWED(u)を設定します。HOSTSでいいです。HOSTSとは、サービスへのアクセスを許可するIPではなく、外部からのサービスアドレスへのアクセスを許可するIPである)。
三、運転効果
3.1全体ディレクトリ構造
第二節の全ての操作により、プロジェクトディレクトリ構造は下図のようになっています。pycache構いません
3.2運転効果
get要求ページ:
get要求結果:
ポスト要求ページ:
ポスト要求結果:
この記事は主にDjangoのget/postリクエストの簡単な方法を紹介します。Djangoの使用についてもっと知りたいです。下記のリンクをご覧ください。
前に「Python 3+PyCharm+Django+Django REST frame ebook開発教程」を書きましたが、直接にrestを紹介したいと思って終わりました。しかし、振り返ってみると、一つはレストがデカップしながらフレームを複雑にしています。多端末がないと、そのレスは複雑さを下げずに複雑さを増しました。二つは基本的なgetとpostが自分を実現するかそれとも半日を見ます。djangoの従来のMVC開発を紹介するために、もう一枚書く必要があります。
環境構築プロジェクトは同じようなrest化部分を作成する前(2.5及び前)に操作すればいいです。説明を繰り返さないようにします。ここで作成したプロジェクトはdjango 1です。初期ディレクトリの構造は以下の通りです。
二、環境配置
自分で作成したプロジェクトがdjango 1でない場合、以下のすべてのdjango 1を自分のプロジェクト名に変更します。
2.1カスタムテンプレートのパスとテンプレートの作成
編制django 1/django 1/setting.pyは、TEMPLATES変数に位置決めし、DIRSの値をBASE_に変更します。DIR+「/django 1/templates」、
django 1/django 1ディレクトリの下でtemplatesフォルダを作成し、その下でget.html、post.html、reult.3つのファイルを作成します。
get.1は、get提出のために使用されます。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>get </title>
</head>
<body>
<form action="/get" method="get">
<input type="text" name="q" />
<input type="submit" value=" " />
</form>
</body>
</html>
posts.は、post提出に使います。{%}内はDjangoテンプレート文であることを表します。token%は、このフォームのロード時にtokenに戻ることを示し、その提出時にtoken認証を行う(サービスをオフにするなら、csrf付加御機能は、setting.py-M IDDEWARE--'django.middleware.csrf.cfrf Vieware'コメントを削除する)。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>post </title>
</head>
<body>
<form action="/post" method="post">
{% csrf_token %}
<input type="text" name="q" />
<input type="submit" value=" " />
</form>
</body>
</html>
result.html getとpost入力の内容を表示するために使用します。{}その内がDjangoテンプレート変数であることを表します。
<h1>{{ result }}</h1>
2.2設定要求ルートDjangoのすべての要求ルートはurls.pyによって設定されています。たとえ存在する静的ファイルでもルーティングを設定してからアクセスできます。
指名手配django 1/django 1/urls.pyは、以下の内容に修正されました。
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from . import view
urlpatterns = [
path('admin/', admin.site.urls),
# url(r'^hello$', view.hello),
url(r'^get\.html$', view.get_html),
url(r'^get$', view.get),
url(r'^post\.html$', view.post_html),
url(r'^post$', view.post),
]
2.3処理ロジックの実現2.2にget.html、get、post.を配置しました。postの四つの要求はそれぞれview.get_に渡しました。html、view.get、view.post_)、view.postは処理を行います。今回はこの四つの処理ロジックを実現します。
django 1/django 1フォルダでview.pyを作成し、以下の内容を書き込みます。
from django.shortcuts import render, render_to_response
def get_html(request):
return render_to_response('get.html')
def get(request):
context = {}
# request.GET['name'] get
# result result.html
context['result'] = f" :{request.GET['q']}"
return render(request, 'result.html', context)
def post_html(request):
# get render_to_response render , csrf_token
# return render_to_response('post.html')
return render(request, 'post.html')
def post(request):
context = {}
# request.GET['name'] post
# result result.html
context['result'] = f" :{request.POST['q']}"
return render(request, 'result.html', context)
その中の注意はコメントのように強調されています。)の中でレンダーを使ってはいけません。to_reponseはレンダーを使用してリダイレクトしなければならない。そうでないとサーバがtokenに戻ることができなくなり、token検証に失敗し、さらにページにアクセスできなくなる(403、CSRF token missing or incorect)。下図のように:また、上記のように詳細なエラーメッセージを返しました。これは情報セキュリティではタブーですが、djangoではないです。DjangoではデフォルトでDEBUGモードをオンし、settings.pyではDEBUG=Falseを設定し、ALLOWED(u)を設定します。HOSTSでいいです。HOSTSとは、サービスへのアクセスを許可するIPではなく、外部からのサービスアドレスへのアクセスを許可するIPである)。
三、運転効果
3.1全体ディレクトリ構造
第二節の全ての操作により、プロジェクトディレクトリ構造は下図のようになっています。pycache構いません
3.2運転効果
get要求ページ:
get要求結果:
ポスト要求ページ:
ポスト要求結果:
この記事は主にDjangoのget/postリクエストの簡単な方法を紹介します。Djangoの使用についてもっと知りたいです。下記のリンクをご覧ください。