12/08/2018, 16:43

Create and setup your Django project with webpack, npm and ReactJS (part1)

1. Setting up your dev environment Requirements mysql virtualenv git NodeJS 4+ with NPM 3+ 2. Create a Virtual Environment Tạo ra một môi trường ảo để chạy project python. Mục đích là để ngăn chặn các phiên bản khác nhau của library/packages. Nó giống như cô lập, bạn có thể làm ...

1. Setting up your dev environment

Requirements

  • mysql
  • virtualenv
  • git
  • NodeJS 4+ with NPM 3+

2. Create a Virtual Environment

Tạo ra một môi trường ảo để chạy project python. Mục đích là để ngăn chặn các phiên bản khác nhau của library/packages. Nó giống như cô lập, bạn có thể làm bất kì điều gì bạn muốn mà không làm ảnh hướng tới bên ngoài. Sử dụng virtualenwrapper để tạo môi trường ảo cho project:

virtualenv [project-name]

hoặc bạn có thể chỉ rõ phiên bản python mà bạn muốn dùng trong project trong virtualenv.

virtualenv -p /usr/local/bin/python3 [project-name]

Để active virtualenv bạn dùng lệnh:

source project-name/bin/active

khi active thì đường dẫn thư mục sẽ có dạng

(django) sonnt@ASUS:~/Desktop/python/django$

để deactive thì bạn dùng lệnh:

deactivate

3. Install Python packages

Tôi bắt đầu với 7 python packages:

pip install django-webpack-loader
pip install dj-database-url
pip install django
pip install gunicorn
pip install psycopg2
pip install python-decouple
pip install requests
pip install whitenoise

4. Setup Django project

django-admin startproject [project-name] .

khi chạy lệnh trên sẽ tạo ra một thư mục có cấu trúc:

[project-name]/
    manage.py
    [project-name]/
        __init__.py
        settings.py
        urls.py
        wsgi.py

5. Create .editorconfig file

EditorConfig giúp cho việc định nghĩa và duy trì phong cách code giữa các trình soạn thảo và IDE khác nhau. File này sẽ khởi tạo coding style cho dự án: Tôi dựa vào .editorconfig trên PEP 0008 và AirBnB JavaScript Style Guide

root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Set default charset for JavaScript and Python
[*.{js,py}]
charset = utf-8

# Python settings
[*.py]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

# JavaScript, JSX, CSS, SCSS, HTML settings
[*.{js,jsx,css,scss,html}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

# Markdown settings
[*.md]
trim_trailing_whitespace = false

6. Configure Python package requirements

Khởi tạo nay dựa trên Python package requirements cho Django:

pip freeze > requirements.txt

bây giờ tạo một requirements folder, vì vậy có thể quản lý các gói required khác nhau chó các môi trường khác nhau:

mkdir requirements
echo "r- base.txt" > requirements/production.txt
echo "r- base.txt" > requirements/local.txt
echo "r- base.txt" > requirements/testing.txt
cp requirements.txt requirements/base.txt

Tôi xin phép dừng phần 1 tại đây để cho các bạn thực hành những gì tôi đã giới thiệu ở trên. Để biết thành quả như thế nào thì các bạn có thể khởi động csdl:

python manage.py migrate

tạo ra một admin bằng tay:

python manage.py createsuperuser

cửa sổ bật lên thì bạn chỉ cần nhạp tên, email, password. sau đó sử dụng lệnh:

python manage.py runserver 0.0.0.0:8000

Rồi vào địa chỉ: http://localhost:8000/admin/login/?next=/admin/ và bạn sẽ thấy: Hẹn gặp lại vào bài tiếp theo.

tham khảo: https://gist.github.com/Belgabor/130e7770575e74581b67597fcb61717e#1-convert-the-settingspy-into-a-package

0