Giới thiệu Django

Django là 1 trong web framework khá danh tiếng được viết trọn vẹn bằng ngôn ngữ Python. Nó là 1 framework cùng với đầu đủ những thư viện, module hỗ trợ các web-developer. Django sử dụng mô hình MVC và được phát triển bởi Django Software Foundation (DSF một nhóm chức phi lợi nhuận độc lập)Mục tiêu thiết yếu của Django là dễ dàng và đơn giản hóa việc tạo các website phức tạp có sử dụng cơ sở dữ liệu. Django tập trung vào công dụng “có thể tái sử dụng” với “có thể trường đoản cú chạy” của những component, tính năng cách tân và phát triển nhanh, không làm lại phần lớn gì sẽ làm. Một số trong những website phổ cập được xuất bản từ Django là Pinterest, Instagram, Mozilla, cùng Bitbucket.

Cài để DjangoBắt đầu cùng với Django

Project

Tạo ProjectDjango cung ứng 1 câu lệnh nhằm render ra 1 template với cấu trúc hoàn chỉnh django-admin startproject demo_djangonote: không đặt têt project là "django" với "test" với không đặt code vào /var/www Django vẫn trách để code ở các thư mục root.Dùng sublime để mở project đã chế tạo ra và cùng xem cấu trúc:
*
Chúng ta thấy folder ngoài demo_django không tương quan gì tới code nên bạn có thể thay đổi tùy ýdemo_django/__init__.py là 1 trong những file trống rỗng chỉ định việc cái mặt đường dẫn thư mục này sẽ tiến hành xem như là một trong Python package.demo_django/settings.py là file chứa những settings của projectDEBUG: DEBUG = True bật/tăt cơ chế debugALLOWED_HOSTS:ALLOWED_HOSTS = <> ví như báo lỗi liên quan đến ALLOWED_HOSTS thì thêm add vào list này.INSTALLED_APPS: 1 project tất cả thể có không ít app, còn 1 app có thể thuộc những project. Lúc mình thêm 1 app bắt đầu thì cần update danh sách này. Đơn giản là nó chứa toàn bộ các app có thể dử dụng thanfhg instance của Django

django.contrib.admin – Site admindjango.contrib.auth – An authentication system. Hệ thống authenticationdjango.contrib.contenttypes – Hệ thống nội dung typesdjango.contrib.sessions – hệ thống sessiondjango.contrib.messages – khối hệ thống messagedjango.contrib.staticfiles – Hệ thống quản lý các tệp tin staticDATABASES: để tả Database ao ước dùng : SQLite(default), Postgres, Mysql,...demo_django/urls.py là file khai báo các URL của project (kiểu như routing, với add nào thì sẽ tiến hành hàm nào)demo_django/wsgi.py là file cần sử dụng deploy project lên servermanage.py là tệp tin để chế tác app, migrate,...chạy vps trên local

App

Tạo Appcấu trúc của app
*
Thêm tiện ích vào vào demo_django/settings.pyINSTALLED_APPS = < ..... `book`, >Tạo ModelDjango cung cấp ORM (object relational mapping) nói 1 cách dễ hiểu, là 1 trong những class hướng đối tượng người tiêu dùng sẽ được bản đồ thành 1 bảng trong database, 1 object / instance (thực thể của 1 class) sẽ được maps thành 1 record (1 dòng) của bảng trong database.Trong Book application ra thiết kế dễ dàng và đơn giản :Category model có field name,

Book model có field name, price, category, author_name

from django.db import models # Create your models here.class Category(models.Model): name = models.CharField(max_length=200) def __str__(self): return self.nameclass Book(models.Model): name = models.CharField(max_length=200) price = models.IntegerField(default=0) category = models.ForeignKey(Category, on_delete=models.CASCADE) author_name = models.CharField(max_length=200) def __str__(self): return self.nameVới việc khai báo như bên trên Django sẽ khởi tạo 1 schema DB cho ứng dụng và sinh sản API Python để truy vấn Category và Book"Note: chúng ta thấy hàm __str__() được khai báo vào class nó giống như như method toString vào Java với object. Ở đây bạn cũng có thể override nó trong class sinh hoạt Python khiến cho bạn hiển thị friendly name vào object.


Bạn đang xem: Django python là gì


Xem thêm: Glomerulus Là Gì - Hỏi Đáp Y Học: Ước Tính Cơ Năng Thận

Mình sẽ nói ví dụ ở phần Shell Python sống dướiNếu không3, làm cho quen cùng với migrateTạo migration cùng với câu lệnh python manage.py makemigrations bookMigrations for "book":0001_initial.py: - Create mã sản phẩm Category - Create model Book - add field category to lớn bookBằng bài toán chạy makemigrations, Django sẽ hiểu là bạn đang tạo 1 sự biến đổi đến mã sản phẩm (trong ngôi trường này bạn đang create new) và sự biến hóa này sẽ được lưu như một migration.sau lúc chạy xong xuôi sẽ tạo nên file book/migrations/0001_initial.pyNếu ra chỉnh sửa cấu trức của database thì lần makemigrations sẽ khởi tạo ra file dạng 0002_......pyKiểm tra câu lệnh mysql, cai quản db schema hoặc dễ hiểu hơn là phần prefix của file: 0001_initial.pypython manage.py sqlmigrate book 0001BEGIN;CREATE TABLE "book_book" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(200) NOT NULL, "price" integer NOT NULL, "author_name" varchar(200) NOT NULL);CREATE TABLE "book_category" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(200) NOT NULL);CREATE TABLE "book_book__new" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(200) NOT NULL, "price" integer NOT NULL, "author_name" varchar(200) NOT NULL, "category_id" integer NOT NULL REFERENCES "book_category" ("id"));INSERT INTO "book_book__new" ("category_id", "price", "id", "author_name", "name") SELECT NULL, "price", "id", "author_name", "name" FROM "book_book";DROP TABLE "book_book";ALTER TABLE "book_book__new" RENAME khổng lồ "book_book";CREATE INDEX "book_book_2d5f8f90" ON "book_book" ("category_id");COMMITỞ đây có thể sẽ kiểm tra format đầu ra , thương hiệu table, primary key,... Xem đã chính xác chưa.Nếu tất cả đã ok bạn có thể merge vào migrate để sản xuất table vào data basepython manage.py migrateCơ chế buổi giao lưu của migrate là vẫn lấy toàn bộ những migration chưa đc apply cùng chạy lại vào db bảo vệ dữ liệu trong db không biến thành xóa.Kết luận :makemigrations : chế tác migrations cho đều thay đổisqlmigrate: check sql trước lúc applymigrate: apply vào những đổi khác vào dbNote: chúng ta cũng có thể sử dụng 1 câu lệnh độc nhất python manage.py makemigrations && python manage.py migrate

Shell Python

Như rails gồm rails c thì để truy vấn vào shell python họ chạy lệnh command python manage.py shell

Import đa số class cơ mà mình new khai báofrom book.models import Book, CategoryHiển thị toàn bộ số record trong tableCategory.objects.all()tạo record mớic= Category(name="Romatic")c.save()b = Book(category_id=1, name="ABC", price="123", author_name="Minh")b.saveNhư đang nói ở đoạn tạo mã sản phẩm về hàm __str__()Category.objects.all()Khi sử dụng kết quả trả ra là : <>Khi ko sử dụng tác dụng trả ra là: <>FilterCategory.objects.filter(id=1)Category.objects.filter(name="Romatic")Book.objects.filter(category__name="Romatic")Thao tác cùng với foreign keyc = Category.objects.get(pk=1)Note: Các bạn có thể tạo Book theo cách t2:b = c.book_set.create(name="ABC", price="123", author_name="Minh")từ Book truy vấn tới Categoryb.category , b.category.nametừ Category truy cập tới Bookc.book_set.all(), c.book_set.all()<0>.name, c.book_set.all().count,....Xóa recordb.delete()Kết

Mới tìm hiểu về Python nên tôi cũng chỉ giới thiệu được những kỹ năng và kiến thức cơ phiên bản nhất có tronghttps://docs.djangoproject.com/en/1.7/intro/tutorial01/https://www.djangoproject.com/start/https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-14-04