ディレクトリ
ジャンゴ
簡単な紹介
これは、完璧主義者のウェブフレームワークとして設計されています
締め切りと完璧主義のためのWebフレームワーク。
ジャンゴは、Webアプリケーションを開発するために、より簡単かつ迅速に、より少ないコードを使用することができます。
Djangoはそれが簡単に、より迅速かつより少ないコードでより良いWebアプリケーションを構築することができます。
この下には長すぎる、Baiduの翻訳があってください。
DjangoはあるシニアPythonのWebフレームワークの急速な発展ときれいな、実用的な設計を奨励しています。あなたができるように、経験豊富な開発者によって構築、Web開発は、多くの問題を解決するために、車輪を再作成することなく、アプリケーションの作成に集中します。それは自由でオープンソースされます。
Djangoは急速な発展とクリーンな、実用的な設計を奨励し、高レベルのPythonのWebフレームワークです。経験豊富な開発によって建てられ、それがWeb開発の手間の多くの世話をするので、あなたは車輪の再発明することなく、あなたのアプリケーションを書くことに集中することができます。これは、フリーでオープンソースです。
話し:
- 空母に似て、特に特殊な大型と機能が付属しています
- 短所:時々あまりにもかさばる(小さなプロジェクトがより少ないが来る多くの機能を備えています)
ジャンゴの使用を注意してください
コンピュータ名は、中国にはできません
ファイルの命名も試してみてください中国を使用しません
中国は、エンコーディングのコーディングエラーを引き起こす可能性がある場合
pycharmウィンドウには、項目を1つだけ持つことができ、プロジェクトの次のウィンドウ上でより多くのを入れていません、
Djangoの注意のバージョンの問題を...(以下、拡張の説明)
Djangoプロジェクトを開始した後、ポートに注意を払う必要があります
Djangoは(競合を防ぐためにポート)ポートを交換することを忘れないで、複数のプロジェクトを考えます
コンピュータ名は、中国を持つことができません
問題のDjangoのバージョン
ジャンゴコースの異なるバージョンが同じバージョン(:最新バージョンをしようとしないでください業界のルール)を使用し、不慮のバグを防ぐために、最高異なっています
1.11.11以下に展開するために、異なる問題の異なるバージョンが存在してもよいです
ジャンゴをダウンロードしてインストール
まだ、少し時間をダウンロードしてインストールする必要があり、国内の使用を検討して設定ピップ倉庫アドレスを
次のインストールは、以下から選択することができます
コマンドラインをダウンロードしてインストール
pip3 install django==1.11.11(1.11.11是版本号)
pycharmでダウンロードし、グラフィカルインタフェースをインストール
あなたが必要とするバージョンを選択することを忘れないようにしてください
インストールが成功したことを確認します
に、コマンドラインで次のコマンドを入力します
django-admin
以下の情報に似て戻ることは成功の束をインストールすることです
Djangoプロジェクトを作成します。
コマンドラインを作成し、起動します
そうでない場合、どのようなあなたは、サーバー上で変更させることになっていますか?
Djangoプロジェクトを作成するには、コマンドライン
django-admin startproject project_name(项目名)
Djangoプロジェクトを作成するには、コマンドライン
保存するディレクトリ最初のプロジェクトに変更して作成します
一緒に個々の機能に対応するアプリケーション(APP)
django-admin startapp app01(应用名)
若しくは
python manage.py startapp app01(应用名)
コマンドラインスタートDjangoプロジェクト
プロジェクトディレクトリにカットするには
python manage.py runserver
注意を払います
使用するコマンドラインを Djangoプロジェクトを作成するには、自動的に新しいテンプレートテンプレートフォルダを作成していない、あなたが必要手動でファイルのsettings.pyファイルの登録にご自身のニーズとパスを作成します
次pycharmを作成して開始
プロジェクトを作成するときには、その後、コマンドラインを介して作成され、アプリケーション(アプリ)を作成することができます
アプリを追加フォロー
コマンドライン(マスターに、インタビューも****
)
python manage.py startapp app02
起動項目
緑色の矢印ポイント(下の後、そうでない場合は、アイコンの左に、その編集者)プロジェクトを開始します
あなたは、そのアイコンを持っていない場合
プロジェクトは開始できません。
場合は、コマンドラインは、プロジェクトがない問題を開始するが、起動しない開始pycharm、Pythonインタプリタ選挙かどうか、私はpycharmを実行しませんDjangoプロジェクトで、その結果、その選挙はpythonwになった友人を持っていることに注意してください
あなたは最初の1にそれ以外の場合は、次回のデフォルトを削除するには、間違った取る、または必要があります
Djangoのプロジェクトディレクトリの説明
+项目名文件
+应用文件夹(app01)
+migrations 文件夹 数据库迁移记录
-admin.py django后台管理
-apps.py 应用注册相关
-models.py orm表模型类
-tests.py 测试文件
-views.py 视图函数/类
+与项目名同名的文件夹
-settings.py django暴露给用户可配置的文件
-urls.py 路由文件,配置路由与视图函数对应关系
-wsgi.py
+templates 页面模板文件夹,一般放待渲染数据的html页面
-test.html 待渲染数据的页面(使用django自带的模板语法去渲染)
-mange.py django的入口文件
新しいアプリケーション(アプリ)特別な注意*****
(これらのプロジェクトの前でDjangoの独自のアプリです)アプリケーションの作成(アプリ)が(レコードを追加)設定で登録する必要があります有効になります
Settings.py設定ファイルの解析
部の紹介をインターセプト
# ...其他代码...
# Application definition
# 创建的应用一定要在这里注册才能生效
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config', # 规范写法
'app02', # 简写
'app03'
]
# django中间件 django的门户 保安
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'myfirstdjangodemo.urls'
# 模板文件配置相关
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'myfirstdjangodemo.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
# 数据库相关
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# ...其他代码...
ジャンゴ白は3つのトリックとなります
前提:これはデフォルトのDjangoプロジェクトの始まりは作成されています
三板斧:
HttpResponse: 用来返回字符串给页面
render: 返回html页面并且能够给该页面传值
redirect: 重定向,返回指定的页面html(浏览器可以看到302状态码)
彼は強調:各関数は、新たにルーティング・ファイルに追加されるべきで
urls.py
表示するために、経路を追加するために、対応関係(のみに対応するリクエストパスの時間ビュー機能/クラスがハンドルに)最も簡単な手順:
- アプリを作成します。
- ルーティングの設定(ルーティングおよびビューの対応関係の関数)
- ライトビュー機能(オーバーガイドを覚えて、リダイレクト、のHttpResponseを使用します)
- テンプレートのページを書きます
たとえば、のHttpResponse
ルートの追加
first_django_project / urls.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 导入视图函数文件
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index), # 新添加的路由, index 浏览器端口后面的地址 --> 127.0.0.1地址:8000端口/index, views.index 输入前面地址时将要执行的函数
]
対応するビュー機能の調製
app01 / views.py
from django.shortcuts import render, HttpResponse, redirect
# 引入 HttpResponse(直接返回字符串并打包成响应体返回) 和 redirect(重定向页面)
# Create your views here.
# index 路由对应的视图函数,这里用 HttpResponse 返回一个字符串
def index(request):
return HttpResponse('<h1>Hello, this is Index!</h1>') # 可以返回html标签,浏览器依旧会渲染效果
ブラウザで要求データ
127.0.0.1:8000/index/
例(テンプレートデータを送信することができるレンダリング)レンダー
ルートの追加
first_django_project / urls.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 导入视图函数文件
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
url(r'^login/', views.login), # 新添加的 登录路由 与 对应的视图函数
]
構成ビュー機能
新しいページ
テンプレート/ login.htmlと
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是登录页面</h1>
{# django的模板语法(支持字典 点语法取值 dic.key,但不支持字典的原生语法,这一点不如jinja2(模板引擎语法,一般和flask框架搭配使用) 强大!) #}
<h3>{{ user_dict.username }}</h3>
</body>
</html>
ビュー機能を追加
app01 / views.py
from django.shortcuts import render, HttpResponse, redirect
# 引入 HttpResponse(直接返回字符串并打包成响应体返回) 和 redirect(重定向页面)
# Create your views here.
def index(request):
return HttpResponse('<h1>Hello, this is Index!</h1>')
# login 路由对应的视图函数,这里用 render 返回 html 格式的页面字符串
def login(request):
user_dict = { # 模拟后台处理好的数据
"username": "jason"
}
# login.html 这里不需要加上templates 文件夹,已经做过配置了,会自动找到的
# return render(request, 'login.html') # 可什么数据都不带
# {"user_dict": user_dict} 包装成响应体返回, 键"user_dict"在模板中可以拿到
return render(request, 'login.html', {"user_dict": user_dict})
ブラウザで要求データ
ケースをリダイレクト
古いルールは:ルートを追加します
first_django_project / urls.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 导入视图函数文件
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
url(r'^login/', views.login),
url(r'^home/', views.home), # 新添加的 home 路由 与 对应的视图函数(这里是演示重定向,直接跳转到 login路由去处理)
]
構成ビュー機能
from django.shortcuts import render, HttpResponse, redirect
# 引入 HttpResponse(直接返回字符串并打包成响应体返回) 和 redirect(重定向页面)
# Create your views here.
def index(request):
return HttpResponse('<h1>Hello, this is Index!</h1>')
def login(request):
user_dict = {
"username": "jason"
}
return render(request, 'login.html', {"user_dict": user_dict})
def home(request): # home 路由对应的视图函数
print("----> 请求home 路径,进入到了 home的路由函数...")
return redirect('/login/')
ブラウザで要求データ
そこかどうかを確認するために、バックグラウンドで印刷されたばかりの単語、
図マークは、QQの最新バージョンの新機能のスクリーンショット(推奨、良い感じ!ハッハッハ)