何であるDjangoは?
- DjangoはPythonベースの高度なWeb開発フレームワークです
- これは、開発者が効率的かつ急速な発展にすることができます
- 高度(ホイールを作成する必要はありません)統合され、自由とオープンソース
現在のパス作成プロジェクト
ジャンゴ-adminのstartprojectのmyblog
- ディレクトリ名修正することを提案してい
- Wsgi.py Pythonのサーバゲートウェイインターフェース(ウェブ・サーバ・アプリケーションとPythonの間のインタフェース)
- Urls.py Djangoプロジェクト、すべてのアドレス(ページ)は、独自のURLを設定する必要があります
- Settings.py構成データベースなど
- __init_モジュールは、導入されてもよいです
アプリケーションを作成します:
- コマンドラインを開き、同じディレクトリmanage.pyでプロジェクトを入力してください
- コマンドライン、タイプ:のpython manage.py startappのブログ
- Insalled_APPSにアプリケーション名を追加するSettings.py
- 移行データ移行(マイグレーション)モジュール
- admin.py:バックエンドアプリケーションの構成管理システム(Djangoの独自のバックエンド管理システム)
- apps.py:一部の構成は、現在、将来のジャンゴ - 1.9に自動的に適用しました
- models.py:データモジュール、モデルMVC(モデル)と同様ORMフレームワーク構造を使用。
- views.py:ここに書かれているコードの大部分を、対応するコードモジュールメインロケーション・コード・ロジック処理を実行プロジェクト
コードが始まります
第二のプロジェクトのURL の構成
- ルートの導入を含めurls.py
- Urls.pyファイルは、アプリケーションカタログにルートurls.pyと同じ形式で作成されます
- URLは(「blog.urls」)を含む第2のパラメータのルート関数のurls.py
- アプリケーション名を設定するためのUrls.pyルートURL、アプリケーションは、すべてのURLのパスの合計であります
- URLの正規表現と終了記号$を設定する場合/
テンプレートの説明:
- テンプレートファイルは、HTML保存されています
- Djangoテンプレート言語を使用します(Djangoのテンプレート言語、DTL)
- あなたは(例えばJinja2のような)サードパーティのテンプレートを使用することができます
どこの変更:
- BACKENDの値を設定するTEMPLATES
テンプレートの開発
- アプリのルートディレクトリにテンプレートというディレクトリを作成します。
- ディレクトリ内のhtmlファイルを作成します。
- ブラウザにレンダリングする内部ビューをレンダリング
リターンは、レンダリング(リクエスト、"index.htmlをします" )
- )(辞書型パラメータをサポートするために三番目の引数をレンダリング
- 辞書は、パラメータのテンプレートへの舞台裏のパスで、キーはパラメータ名です
- 直接使用するテンプレートパラメータ名{} {}で使用
Djangoはテンプレートを探します
- 検索テンプレートDjangoは順番に追加INSTALLED_APP
- 同じ名前の.htmlファイルのテンプレートディレクトリが異なるAPPで競合が発生します
TemplatesTemplatesの解決競合プログラム
- APPのテンプレートディレクトリにAPP名というディレクトリを作成します。
- 新しいディレクトリの下にHTMLファイル
モデルの紹介
- 典型的には、モデルデータベースは、データテーブルに対応します
- クラスの形で示さDjangoのモデルで
- いくつかの基本的なフィールドだけでなく、データの行為の一部が含まれています
蛇
- オブジェクト・リレーショナル・マッピング(オブジェクト関係マッピング)
- オブジェクトとデータベース間のマッピングを実現
- 非表示のデータアクセスの詳細は、書き込みSQL文には必要ありません。
書き込みモデルの手順:
- Models.pyは、アプリケーションのルートディレクトリに作成され、モデルモジュールの導入
- 継承models.Modelは、データテーブルの1つのタイプを意味するクラスを作成します。
- クラス内のフィールドを作成します。
フィールドが作成されます。
- すなわち、クラス・フィールドの特性(可変)
- ATTR = models.CharField(MAX_LENGTH = 64)
そして、他のパラメータは、ここで導入することができます
https://docs.djangoproject.com/en/1.10/ref/models/fields/
データテーブルに以下のステップを生成:
- ディレクトリの統計情報を入力するManage.pyコマンドライン
- 実行のpython manage.py makemigrationsアプリ名(オプション)
- 実行のpython manage.py移行で
見ます:
- Djangoは自動的にアプリ/移行/ディレクトリに移行ファイルを生成します。
- (のpython manage.py sqlmigrate 0001ブログ)manage.py sqlmigrateアプリケーションのファイル名ID Pythonの実行SQL文を参照してください
- プロジェクトのルートディレクトリのデフォルトのsqlite3のデータベースdb.sqlite3
表示および編集db.sqlite3
- サードパーティ製のソフトウェアを使用して、SQLiteの専門家個人は完全に無料で軽量
- 関連するデータパスsqlite3ののRunは、直接または他のデータベースを開くインストールされていません
- sqlite3.exe D:\ pycharm \ imooc \ myblog \ db.sqlite3
- そして、オープンdb.sqlite3にダブルクリックします
ステップバック(ページ・レンダリング・データ):
- Views.py中輸入モデル
- 記事= models.Article.objects.get(PK = 1)
- レンダリング(リクエスト、ページ、{ '記事':記事})
のステップのフロントエンド:
- テンプレートは、直接オブジェクトとオブジェクトを使用することができます。「」操作
- {{}} article.title
Aminのはじめに:管理者とは何ですか?
- 管理者は、強力なDjangoは機能自動化されたデータの管理インタフェースが付属しています
- 承認されたユーザーは、管理者に直接データベースを管理することができます
- Djangoは管理者のためのカスタマイズ機能の数を提供します
構成管理
- python manage.pyのcreatesuperuserはスーパーユーザを作成します
- アクセス住所:http://127.0.0.1:999/admin/
- 中国の変更LANGUAGE_CODEでsettings.py =「zh_Hans」になります
設定アプリケーション
- admin.pyモデルモジュールにアプリケーション自体を導入(またはモデルのクラス内)
- 编辑admin.py:admin.site.register(models.Article)
使用管理データを変更します。
- 記事の記事一覧ページを入力してハイパーリンクをクリックしてください
- 、データのどの部分をクリックして編集ページの変更を入力してください
- 編集ページ下のボタンの列は、適切なアクションを実行します
デフォルトデータの表示名を変更します。
- 記事のクラスの下で添加する方法
- Pythonのバージョン選択に従って(この使用のpython3)__str __(自己)または__unicode_(自己)
- リターンself.tile
ブログページのデザイン
- メインページブログ
- ブログ記事のコンテンツページ
- ブログの書き込みページ
メインページのコンテンツ:
- 記事リストのタイトル、ハイパーリンク
- 公開されたブログのボタン(ハイパーリンク)
アイデアのリストを書きます:
- データベースの記事内のすべてのオブジェクトを削除します
- フロントに送信対象リストに包装された物品、
- ハイパーリンクの形で個別に記載されているタイトルのフロントページの記事
用のテンプレートループ構文:
- {XXS%でXX用%}
- HTML声明
- {%ENDFOR%}
ブログ記事のページ:
- 見出し
- 記事の内容
- 変更の記事ボタン(ハイパーリンク)
URLの引数:
- パラメータは、応答機能要求に書き込まれた後は、デフォルト値を有することができます
- URLの正規表現r「^記事/(?P <のarticle_id> [0-9] +)$
- URL正規のグループ名とパラメータ名は一致している必要があります
ハイパーリンクの送信先アドレス:
- hrefがターゲットアドレスの後ろにあります
- テンプレートを使用することができる "{%URL 'APP_NAME:URL_NAME' PARAM%}"
- そしてAPP_NAME URL_NAMEは、URL内に配置されており
URL 関数パラメータの名前
- ルートのURL、書き込みは(含める)は、第2のパラメータの位置、名前空間=「ブログ」
- 書き込み中のURLのアプリケーション()第三のパラメータの位置、名前=「記事」
- 別のURLプロファイル参照を含めるかどうかに応じて、
書かれたページ、ブログページのコンテンツを
- タイトルバーの編集
- 記事の内容の編集領域
- [送信]ボタンを
応答関数を編集します。
- request.POSTの使用[「パラメータ名」]取得した帳票データ
- オブジェクトを作成するためのmodels.Article.objects.create(タイトル、内容)
- POSTメソッドは、フォーム、フロントページプラス{%csrf_token%}を提出することに関する
二つの編集ページ(思考):
- 新しい記事が空、修正品であります
- ある記事の記事のページには、オブジェクトを変更します
- 文書番号
データを変更するインタフェースを書くブログ
- article.title =タイトル
- article.save()
寺のフィルタ、フィルタは何ですか?
- テンプレートでの書き込み、Djangoのテンプレート言語に属しています
- あなたは、異なるコンテンツを表示するには、テンプレート内の変数を変更することができます
フィルタを使用する方法:
- {{値| フィルタ}}
- 例:{{list_nums |長さ}}
- フィルタを重畳することができる:{{値|フィルタ1 |フィルタ2 | ...}}
Djangoのシェル
- これは、Pythonの対話型のコマンドラインプログラムです
- それは自動的に私たちのプロジェクト環境で
- 私たちは、私たちのプロジェクトと対話するためにそれを使用することができます
DjangoShellを使用するには?
- Pythonのmanage.pyシェル
- blog.modelsインポートの記事から
- Article.objects.all()
用途は何ですか?
- 我々はいくつかのデバッグを行うにはDjangoのシェルを使用することができます
- 未知の試験方法
管理:作成、管理、構成クラス
- クラスArticleAdmin(admin.ModelAdmin)
- 注册:admin.site.register(記事、ArticleAdmin)
追加のフィールドが表示されます。
- 一覧表示=(「タイトル」、「コンテンツ」)
- List_displayはタプルとリストをサポートしています
フィルタ:
- List_filter =( 'パブ-時間')
関連するコード住所:https://github.com/jiyanjiao/myblog