Hướng dẫn tạo app django – P2

Tram Ho

Phần 2 – Tạo project, tạo app, tạo model, migration, trang admin


  • Tạo app

  • Tạo views trong app
  • Tạo url trong app
  • đặt url của app vào project

Database setup mysite/settings.py:

1 trong 4 loại ENGINE:

  • ‘django.db.backends.sqlite3’
  • ‘django.db.backends.postgresql’ (package py-postgresql), ‘django.db.backends.postgresql_psycopg2’ (package psycopg2) …
  • ‘django.db.backends.mysql’
  • ‘django.db.backends.oracle’
    Demo config mặc định

Cần dùng thêm biên môi trường, demo với package python-dotenv:

=>

Creating models

Cơ bản django support tạo file migration database dựa trên khai báo model => ngon hơn laravel, rails ✌️

Demo polls/models.py:

Activating models

Tại mysite/settings.py: thêm vào INSTALLED_APPS cấu hình polls 'polls.apps.PollsConfig'

CMD: python manage.py makemigrations polls => tạo file migration tự động từ các models (Question, Choice)

Kiểm tra migration sql khi chạy: python manage.py sqlmigrate polls 0001 => chạy file 0001 tạo các table trong database.

Migrate database: python manage.py migrate

Sử dụng API shell

Mở trình tương tác django shell: python manage.py shell
Tạo dữ liệu bằng cơm:

<QuerySet [<Question: Question object (1)>]> không thuận tiện cho dev nến rất cần sử dụng __str__ :

Tham khảo sử dụng datetime và timezone, các command thêm, sửa, xóa, query, filter với django shell: https://docs.djangoproject.com/en/3.0/intro/tutorial02/

Introducing the Django Admin

Để ý các bảng được migrate ngay từu đầu, Django Admin là 1 cơ chế hỗ trợ rất mạnh cho việc quản lý CRUD cơ bản khi không đòi hỏi spec mới mẻ gì. Django hoàn toàn tự động tạo giao diện quản trị cho các models.
Quản lý web site sử dụng trang web để thêm tin tức, sự kiện thể thao … Django giải quyết vấn đề tạo giao diện hợp nhất cho quản trị viên trang để chỉnh sửa nội dung. Quản trị viên không định để tran web đc sử dụng bởi khách truy cập trang web, mà cho người quản trị trang web.

Creating an admin user

tạo mới người quản trị : python manage.py createsuperuser
Khởi động server => python manage.py runserver vào trang admin đăng nhập là đc, tuy nhiên chưa thể quản lý app polls

Làm cho app polls có thể được chỉnh sửa bởi trang admin

polls/admin.py:

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo