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