あなたは、ファイルを作成するときにDjangoアプリケーションの名前を記入していません作成する方法:
図1に示すように、コマンドラインで最初のノック。
python3 manage.py startappのアプリ名
2、その後、設定アプリを登録して行きます。
INSTALLED_APPSで
その後、機能を追加します。
これは、ビューおよびURLです
ビュー内のファイルのURLをインポートします
スタティック・ファイル
htmlファイルはすべて、デフォルトのテンプレートフォルダに配置されている
フロントエンド用には書かれている私たちは、これらのファイルを引き継ぐためにそれを使用する文書には、「静的ファイル」と呼ばれる呼び出すことができる
静的なファイルを指定できます
クラスのフロントエンドフレームワークブートストラップ書き込まれています
画像
、CSS
、JS
すべてのデフォルトで静的ファイル静的フォルダ(手動で作成した)
デフォルトのサブフォルダが作成した静的なデフォルトフォルダ
現在のサイトのすべてのスタイルファイルのCSSフォルダ
のjsファイルのjsファイルのすべての現在のWeb
のimgファイルすべての画像は、現在のサイトファイルを
他の(フロントエンドフレームワークコード、サードパーティ製のプラグインのコード...)
なお際の出発点のジャンゴ:
私たちは、ポート番号が占有でのみDjangoプロジェクトであることを確認する必要がありますときDdjangoプロジェクトを開始し
、バグを引き起こす可能性が高いだろうそう
ユーザーは、URL内のすべてのリソースにアクセスすることができます
あなただけがアクセスできるURL関連リソースを開く(******)
ので、リソースのクラスのためのフロントエンドフレームワークは、手動で、フロントエンドにさらさする必要があります。
バックエンドリソースは、一般的に、手動でユーザーに公開するかどうかを指定する必要があります
手動でユーザーに公開静的ファイル:
= STATICFILES_DIRS [
os.path.join(BASE_DIR、「静的」)
]
限り、あなたは、ファイルへの特定のパスの静的フォルダを入力するとアクセスすることができます。
STATIC_URL =「/静的/」#フォルダの名前がありません、静的ではなく、インタフェースの接頭辞
「」「」「あなたは静的で開始する必要があります静的ファイルへのリソースファイルパスにアクセスしたい場合は、」
#静的フォルダを手動すべてをユーザリソースに露出
STATICFILES_DIRS = [
os.path.join(BASE_DIR、 '静的')、フォルダ#1の真のパス
os.path.join(BASE_DIR、 'static1') 、#実際のフォルダパス
os.path.join (BASE_DIR、 'STATIC2')、 #実際のフォルダパスの
os.path.join(BASE_DIR、 'static3') #実際のフォルダのパス
構成内の最も低い設定に移動します:
静的ファイルのインタフェースのプレフィックス動的解析:
インタフェースの接頭辞を設定した後、任意に設定することができますが、あなたは、ファイルを動的にすることができ得ることができます:
ブラウザのキャッシュ機能:
ジャンゴオートリフレッシュメカニズム:
デフォルトでは、あなただけのページにあなたができるいくつかの回をリフレッシュする必要があるので、自動再起動のDjangoのコードをサポートすることです
が、時にはそれは、再起動メカニズムのは比較的遅い
限り、コードの変更が自動的に再起動しますと、ファイルの変更を監視し、リアルタイム:メカニズム
あなたのコードはまだ完成していない可能性この時間は、自動的にエラーになります
基本設定の登録ページのフロントエンドログイン:
デフォルトでは、リクエストフォームフォームを取得することで
、データに続いて挨拶するデータ伝送のURL方法
http://127.0.0.1:8000/login/?username=zekai&password=123が
ポストメソッド要求を変更することができ
、要求がポスト設定ファイルに移動する必要があります後にミドルウェアをコメントアウト
アクション先から提出されたフォームデータ形式
現在のアドレスが書かれていません1にデフォルトが提出された
2も書き込むことができ、接尾辞/インデックス/(使用されるこのプロジェクト)
のフルパス3も書き込むことができます
バックエンドは、リクエストの種類に応じて異なる動作をする必要があります。
ログインDEF(要求):
異なる要求のため#ビュー機能は、異なる処理ロジック有するべきである
:request.method ==「GET」IF#を
#プリント(「受信」)
#プリント(request.method)が遠位#を取得することができますリクエストの仕方と大文字に文字列全体
#印刷(タイプ(request.method))
#レンダリング(リクエスト、「login.htmlと」)返し
ます。#ELIFのrequest.method ==「POST」
の##がそれに応じてユーザー入力を取得しますロジック解析
#リターンのHttpResponse( "弟を得る")
request.methodのIF == 'POST'の:
のHttpResponseを返す( '赤ちゃん来る')
レンダリングを返す(要求を、 'login.htmlと')
シンプルな言葉遣いを区別:
シンプルなメソッドを使用してRESQUEST:
フロントエンドデータ収集
のrequest.method取得要求メソッド
データの処理は、バックエンドモジュールは、データ処理の多く行わジャンゴwsgirefだけでなくだけで
GETの
提出を受けるrequest.GETデータ収集フロントエンドを(それは大きな辞書のようなものです)
の値を
要求。 GET.get(「ユーザ名」)デフォルト値がリストであるが、ちょうど最後の要素のリストを取ることが#
強くおブラケットにフォームの値を使用することをお勧め#を
使用すると、(******)すべてを一覧表示する直接たい場合#
request.GET.getlist(「ホビー」)
POST
request.POSTデータ収集フロントエンドポスト提出(それは大きな辞書のようである)
値
デフォルト値はリストですがrequest.POST.get(「ユーザ名」)#を、ちょうど取ります最後の要素のリスト
#を強くお括弧の中にフォームの値使用することをお勧め
しますが、直接(******)すべてを一覧表示したい場合は#を
request.POST.getlist(「趣味」)
Djangoのデフォルトは、内蔵使用してsqliteのデータベース
あなたが他のデータベースの設定にそれをしたい場合は、設定ファイルで設定する必要が
1.settingsファイルの設定
= {DATABASES
「デフォルト」:{
「ENGINE」:「django.db.backends。 MySQLの」、
'NAME ':' day51'、
'HOST ':' 127.0.0.1'、
'PORT ':3306、
' USER ':'ルート'、
'PASSWORD ':' 123'、
'CHARSET ':' UTF8'
}
}
デフォルトの接続MySQLのMySQLdbは使用しないでくださいのinitプロジェクト名でのファイルやアプリケーションの初期化ファイルのジャンゴの名前を教えて2.'ll
が、pymysqlの使用
インポートpymysql
)(pymysql.install_as_MySQLdbを
ORM Djangoの
ORMオブジェクトリレーショナルマッピング
テーブルクラス
レコード対象
に対応するオブジェクトのフィールドの属性値
最初のモデルクラスは、アプリケーション記述する必要がありmodels.pyの
クラスのユーザ(models.Model)を:
#IDフィールドは、ユーザーテーブルの主キーフィールドに設定されていますジャンゴでプライマリキーフィールドという名前のIDを作成するためにあなたのテーブルにデフォルト設定されますマスターキージャンゴ辞書に書き込むことはできませんORM
models.AutoField(PRIMARY_KEYがTrueを= =#IDを )# あなたは主キーフィールドを指定するとそれが自動的にDjangoのではないだろうあなたが作成するのに役立ちます
ユーザ名= models.CharField(max_lengthを= 32) #ユーザ名のVARCHAR(32)CharFieldですがMAX_LENGTHパラメータを指定する必要があります
パスワード= models.IntegerField()#パスワードはintを
************* ************データベース移行(同期)コマンドを実行する必要が******************************
python3 manage.py makemigrations#だけの小さなノート(移行フォルダ)で直接データを操作されていないデータベースのレコードを変更する
#は、データベースのレコードが実際にデータベースに同期変更移行manage.pyののpython3を
注:限り、モデルはデータベースで移動します関連のコードは、上記の二つの人生の再実装でなければなりません だから、必要不可欠な(******)
Djangoはデータベース内のテーブルを作成するためのコマンド:
削除のフィールドが検索に変更
増加を
テーブルにフィールドを追加するために、後続の希望の外に作成されたとき、二つの方法がある
デフォルト値を設定するための新しいフィールド1
のaddr = models.CharField(max_lengthを= 32、デフォルト=「中国このフィールドのデフォルト値の「)#デフォルト値
2.空に新しいフィールドを与える
年齢= models.IntegerField(ヌル= TRUE) #このフィールドがヌル可能に
削除(注意)
、再度実行2つのコマンドが直接models.pyフィールドにコメントフィールドを削除するには次のことができ
ます:実行後、すべてに対応するテーブルのフィールド内のすべてのデータを削除するには
、通常の状況下では、基本的には、真の意味を削除するために使用することはありません
ORM操作がのモデルのクラス名を使用する必要が
データチェック
app01インポートモデルからの
すべてのデータの保持ダイレクト#()models.User.objects.all
models.User.objects.get(ユーザー名=ユーザー名)#が推奨されていないため、問い合わせ条件が存在しない場合、ページが文句を言うでしょう
RESを= models.User.objects.filter(ユーザー名=ユーザー名)
res.query:オブジェクトにネイティブのSQL文を表示するために使用:
USER_OBJ = res.first()
数据的增
1。
models.User.objects.create(ユーザ名=ユーザ名、パスワード=パスワード)
2.
USER_OBJ = models.User(ユーザ名=ユーザ名、パスワード=パスワード)
user_obj.save()
删
models.User.objects.filter(条件).delete()
改
models.User.objects.filter(条件).update( )