図書館管理システム
プレスブックの作者
プレス管理
ショー
# 查询所有的数据
all_publishers = models.Publisher.objects.all() # 对象列表
render(request,'publisher_list.html',{'all_publishers':all_publishers})
テンプレートの構文:
{{All_publishers}}変数
{all_publishers%でiに対する%}
{{forloop.counter}}、{{I}}
{%ENDFOR%}
新しいです
# 方式一
ret = models.Publisher.objects.create(name=pub_name)
# 方式二
obj = models.Publisher(name=pub_name)
obj.save()
削除
pk = request.GET.get('pk')
query = models.Publisher.objects.filter(pk=pk) # 对象列表
query.delete() # 通过queryset 删除
query[0].delete() # 通过单独的对象 删除
編集します
obj = models.Publisher.objects.filter(pk=pk).first() # 对象列表中第一个对象
obj.name = pub_name # 内存中修改
obj.save() # 提交
ジャンゴコマンド
ダウンロード
ジャンゴ== 1.11.23をインストールPIP - 私は
プロジェクトを作成します。
ジャンゴ管理者startprojectのプロジェクト名
起動項目
プロジェクトのルートディレクトリにcd
python manage.pyのrunserver#127.0.0.1:8000
80#127.0.0.1:80のrunserverのpython manage.py
python manage.pyのrunserver 0.0.0.0:80#0.0.0.0:80
アプリの作成
python manage.py startappのアプリ名
登録
データベースの移行
#はAPP登録移行ファイル検出の下でモデルを作成するのpython manage.py makemigrations
#移行を移行manage.pyのPythonは、データベースの同期モデルにレコードを変更します
Djangoの構成設定
INSTALLED_APPS = [
「App01、
'app01.apps.App01Config'
]
DATABASES
ENGINE:エンジン
NAME:データベースの名前
HOST:IP
PORT:3306
USER:ユーザー名
PASSWORD:パスワード
静的ファイル
STATIC_URL = '/静的/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR、 '静的')
]
ミドルウェア
POSTを提出CSRFコメントアウト
テンプレートテンプレート
DIRS =[ os.path.join(BASE_DIR,‘templates’)]
ジャンゴ・プロセスを使用してMySQLデータベース
MySQLデータベースを作成します。
構成データベースの設定
ENGINE:エンジン
NAME:データベースの名前
HOST:IP
PORT:3306
USER:ユーザー名
PASSWORD:パスワード
pymysqlのMySQLデータベースを使用して接続されているジャンゴモジュールに知らせます。
設定と同じディレクトリに
__init__.py
書き込み輸入pymysql
pymysql.install_as_MySQLdb()
models.pyでアプリの下のクラスで書きます
class Publisher(models.Model): name = models.Charfield(max_length=32) # varcher(32)
移行コマンド:
#はAPP登録移行ファイル検出の下でモデルを作成するのpython manage.py makemigrations
#移行を移行manage.pyのPythonは、データベースの同期モデルにレコードを変更します
違いをGETとPOST
取得する
GETリクエストの方法を送信します。
- フォームフォームはメソッドを指定しません
- アドレスバーにアドレスを入力して直接入力します
- タイトル
?K1 = v1の&K2 = V2 request.GET request.GET.get( 'K1')
役職
フォームのフォームメソッド=「ポスト」
request.POST request.POST.get( 'K1')
蛇
オブジェクトとリレーショナルデータベースのマッピングに向けられ
地図:
クラス - 「表
オブジェクト - 「レコード(行)
プロパティ - 「フィールド
アプリのインポートモデルから
クエリ:
models.Publisher.objects.get(名前=「XXXXX」)#オブジェクトがクエリでユニークな、またはほとんど誤差の複数のを持っています
models.Publisher.objects.filter(名前=「XXXXX」)#クエリオブジェクトリスト内のすべてのオブジェクトは、条件のクエリセットを満たすために
models.Publisher.objects.all()#クエリすべてのデータオブジェクトのリストクエリセット
追加:
models.Publisher.objects.create(名前=「XXXXX」)#戻り値は新しいオブジェクトであります
OBJ = models.Publisher(名= 'XXXXX')obj.save()
削除:
models.Publisher.objects.filter(PK = 1).delete()
OBJ = models.Publisher.objects.filter(PK = 1)1次回()obj.delete()
レビュー:
OBJ = models.Publisher.objects.filter(PK = 1)1次回()
obj.name = 'XXXXX'
obj.save()
テンプレートの構文
(リクエスト、 'テンプレートファイル名'、{ 'K1' を、V1})レンダリング
変数
{K1} {}
forループ
{K1%以下でiに対する%}
{{}} forloop.counter
{{I}}
{%ENDFOR%}
外部キー
多くの
図書館管理システム
プレス
ブック
外部キーデザイン
class Book(models.Model): title = models.CharField(max_length=32) pid = models.ForeignKey('Publisher', on_delete=models.CASCADE) # 外键 # on_delete 2.0 必填
クエリ:
all_books = models.Book.objects.all()
print(all_books)
for book in all_books:
print(book)
print(book.pk)
print(book.title)
print(book.pub,type(book.pub)) # 所关联的对象
print(book.pub_id,type(book.pub_id)) # 所关联的对象的pk
print('*' * 32)
新しいです
models.Book.objects.create(title=title,pub=models.Publisher.objects.get(pk=pub_id))
models.Book.objects.create(title=title, pub_id=pub_id)
削除:
pk = request.GET.get('pk')
models.Book.objects.filter(pk=pk).delete()
エディタ:
book_obj.title = title
book_obj.pub_id = pub_id
# book_obj.pub = models.Publisher.objects.get(pk=pub_id)
book_obj.save()