### OSI 7層モデル
- アプリケーション層
- その層、アプリケーション層
- セッション層
- トランスポート層
- ネットワーク層
- データリンク層
- 物理層
- 仮想ソケットは、アプリケーション層とトランスポート層との間に配置されたソケットレイヤーのグループインタフェースは、
- C / SB / S
- Baiduのサーバソケットサーバ
--1 結合IPアドレスとポート。
- 2 。待つ接続が
--5 。データを受け入れる
- 6 。データを返す
- 9 。抜い
- ブラウザクライアントソケットを
--- 3 接続サーバ
--4 送信データ。
--7 データを受け入れる。
- 8 。ブラウザのレンダリングデータ
- 9 。外し
### HTTPを
。 - 1つの。要求と応答
- のブラウザにサーバからの要求(リクエスト)メッセージ
- 形式:
- 「要求URLのパス・プロトコル・バージョン方法
- K1:V1
- K2:V2
-要求データ'
- GETは、データを要求していない
- ブラウザへの応答(レスポンス)サーバーバックメッセージ
- フォーマット:
- ' HTTP / 1.1のステータスコードステータスの説明
- K1:V1
- K2:V2
-応答データ(HTMLテキスト)"
- 2 要求8の合計
- ページをゲット
- POSTデータを提出します
--- 3 。ステータスコード
- の1xx
-の2xx 200は201である
- の3xxリダイレクト
-エラー4xxのリクエスト403 404
- エラー5xxのサーバー
### Web機能フレーム
- 。1 .socketメッセージング
- 2 。異なる結果を返す別のパスに基づいて
--- 3 。動的ページ(置換文字列)テンプレートのレンダリングに戻る
- ジャンゴフラスコトルネード
### 1.ダウンロードしてインストールします
--1 コマンドラインを:.
- PIPがインストールジャンゴ== 1.11.22 -i HTTPS://pypi.tuna .tsinghua.edu.cn /シンプル/
- PIPは、Djangoはバージョン番号を指定しない場合、デフォルトは最新バージョンをインストールします
- 2 .pycharmの
### 2.プロジェクトを作成
--1 コマンドラインを。
- ストアディレクトリのプロジェクトを切り替えます
- django- ADMIN startprojectのプロジェクト名
- 2 .pycharm
-ファイル_>新しい新しいプロジェクト_> 左のジャンゴを選択してください- 「プロジェクトのパスを入力- 」選択インタプリタ- 「の作成
#を。## 3スタート
--1 コマンドOK
- プロジェクトのmanage.pyのルートディレクトリに切り替え
- Pythonはそのrunserver manage.pyの #の127.0.0.1:8000デフォルト
のPythonが80のrunserver manage.pyの- #はポート番号127.0.0.1:80を指定する
- Pythonはのrunserverをmanage.pyの0.0.0.0 :80 #ポート番号0.0.0.0:80共有と指定する
- 2 PyCharm。
### 4の構成。
- BASE_DIRプロジェクトのルート
- DIRS TEMPALTESテンプレート=設定[]
- データベースデータベース
= STATIC_URL - 「/静的/ 」 エイリアス静的ファイル
- STATICFILES_DIRS = [ #静的構成ファイルの後には、最初にすべての見つからないこれを見て
os.path.join(BASE_DIR、「静的」)
]
### 5.APP
- 作成
- コマンドライン:のpython manage.py startappのアプリ名
- 登録:
INSTALLED_APPS = [
' django.contrib.admin ' 、
...
' app01 ' 、
' app01.apps.App01Config ' #は、方法をお勧めします
】
### 6 POST要求を提出した。
この場合注意ミドルウェア
' django.middleware.csrf.CsrfViewMiddleware '
### 7.urls.py
- パスと機能URLの対応関係
urlpatterns = [
URL(R&LT ' ^ ADMIN / ' 、 admin.site.urls)、
URL(R&LT ' ^ログイン/ ' 、views.login)
]
### 8書き込み機能。
- アプリの下views.py
- DEF XXX(リクエスト):
- 要求-関連要求コンテンツ
-request.method - GETリクエストメソッドPOST
- 送信されたデータシートフォームPOSTリクエスト} { - request.POSTの
- リターン応答
- 応答:
- から django.shortcuts インポートレンダリング、のHttpResponse、リダイレクト
- のHttpResponseは- 「の文字列を返します
-レンダリング(要求、「テンプレートファイル名」、{}) - 「リターンページである
- (リダイレクト『リダイレクトアドレス』) - 」リダイレクト
- テンプレートテンプレート
### 9.ormオブジェクトリレーショナルマッピング(リレーショナルマッピングオブジェクト)
- Djangoは、構成MySQLデータベースを使用して:
--1 MySQLデータベースを作成します。
- 2 コンフィギュレーションデータベースの設定で:
--- 3 pymysqlのMySQLデータベースモジュールを使用して接続されている。
同じディレクトリに__init__.pyの設定で:
インポートpymysql
pymysql.install_as_MySQLdb()
。- 4 テーブルを作成し、アプリでモデル。 .py書き込みカテゴリ:``
`パイソン
から django.db インポートモデル
#ここにあなたのモデルを作成します壁紙。
クラスのUserInfo(models.Model):
ユーザ名 = models.CharField(MAX_LENGTH = 32) #のVARCHAR(32)
パスワード= models.CharField (MAX_LENGTH = 32 )
``
- 。5 。データベース移行コマンド
- Pythonのmanage.py makemigrations #移行ファイルを作成することはmodels.pyに記録された変更を記録
-移行Pythonのmanage.py #は、データベースの移行を実行
### 10 ORM特定の操作:.
`` `Pythonの
RET = models.Publisher.objects.all() #すべてのデータを照会するためにオブジェクトリスト
のための I 中:RET
印刷(I、タイプ(I)) # オブジェクトデータベースにデータを対応する
印刷(i.name、i.id) #のフィールドの属性値
models.Publisher.objects.filter(名 = PUBLISHER_NAME)検索空のリストではありません
models.Publisher.objects.createは(名前 = PUBLISHER_NAME)新しい
models.Publisher.objects.filter(上記IDを述べた = 上記のIDを述べた).Delete()削除
変更
PUBLISHER_NAME = request.POST.get(' PUBLISHER_NAME ' )
#の編集
pub_obj.name = PUBLISHER_NAME #メモリの変化だけ
pub_obj.save() #は、データベースへの変更保存
`` `
### 11.テンプレート
` `` HTMLを
{%ためのパブでのRET%}
<TR>
<TD> pub.id {{}} </ TD>
<TD> pub.name {{}} </ TD>
</ TR>
{%ENDFOR%}
`` `