Cabang dasar baru telah ditambahkan. Cabang dasar hanya mencakup backend. Cabang tersebut telah ditulis ulang berdasarkan backend cabang master. Cabang ini memiliki kontrol izin yang lebih baik, mesin alur kerja, manajemen operasi dan pemeliharaan, dukungan soket web, dan menyediakan beragam fungsi umum.
Perubahan fungsional selanjutnya akan didasarkan pada cabang dasar, dan cabang master hanya akan menangani kompatibilitas. Anda dapat beralih ke cabang dasar untuk melihat detailnya.
Sebuah platform pengembangan dasar untuk aplikasi berukuran kecil dan menengah berdasarkan kontrol izin model RBAC. Bagian depan dan belakang dipisahkan. Bagian belakang menggunakan django+django-rest-framework, bagian depan menggunakan vue+ElementUI, dan terminal seluler. menggunakan uniapp+uView (dapat menerbitkan program h5 dan kecil).
Otentikasi JWT, Anda dapat menggunakan simple_history untuk mengimplementasikan fungsi audit, dan mendukung kesombongan
Modul bawaan mencakup organisasipenggunaperanposisikamus dataperpustakaan filetugas berjangka waktualur kerja (sebagian besar kode telah diunggah, dan kode back-end terletak di apps/wf)
Saat menggunakan alur kerja, disarankan untuk menggunakan Postgresql sebagai database. Lingkungan pratinjau berikut menggunakan SQLite, jadi beberapa kueri json tidak didukung. Untuk metode penggunaan, silakan merujuk ke dokumen loonflow.
Mendukung izin fungsional (kontrol untuk setiap antarmuka) dan izin data sederhana (semua, level ini dan di bawahnya, level yang sama dan di bawahnya, saya sendiri, dll.)
Selamat datang untuk mengangkat masalah
Alamat pratinjau menggunakan runserver, admin akun, dan kata sandi admin secara langsung. Harap beroperasi dengan hati-hati dan jangan mengubah kata sandi http://49.232.29.236:2222/
Arahkan ke folder server
Buat lingkungan virtual python -m venv venv
Aktifkan lingkungan virtual .venvscriptsactivate
Instal paket ketergantungan pip install -r requirements.txt
Salin conf_e.py di folder server ke conf.py dan ubah koneksi database dan parameter DEBUG di dalamnya sesuai kebutuhan.
Sinkronisasi database python manage.py migrate
Anda dapat mengimpor data awal menggunakan python manage.py loaddata db.json
atau menggunakan database sqlite secara langsung (kata sandi akun manajemen super adalah admin, dan database akan direset sesekali)
Buat administrator super python manage.py createsuperuser
Jalankan layanan python manage.py runserver 8000
Arahkan ke folder klien
Instal node.js
Instal paket ketergantungan npm install --registry=https://registry.npmmirror.com
Jalankan layanan npm run dev
Ubah nginx.conf saat dijalankan secara lokal untuk menampilkan file sumber daya
listen 8012
location /media {
proxy_pass http://localhost:8000;
}
location / {
proxy_pass http://localhost:9528;
}
Jalankan nginx.exe
Buka localhost:8012 untuk mengakses
Dokumen antarmuka localhost:8000/api/swagger/
Alamat backend localhost:8000/Django/admin/
Perhatikan untuk memodifikasi conf.py saat menerapkan
Ujung depan dan belakang dapat digunakan secara terpisah, proxy nginx. Anda juga dapat mengemas dan mengganti dist front-end dengan server/dist, lalu menjalankan collectorstatic
Mulai menggunakan gunicorn: Masuk ke lingkungan virtual dan jalankan gunicorn -w 5 -b 0.0.0.0:2251 server.wsgi
Jika Anda memerlukan websocket, Anda juga perlu mengkonfigurasi daphne untuk memulai.
Konfigurasi Nginx dapat disebut sebagai berikut:
server {
listen 2250;
client_max_body_size 1024m;
location /media/ {
alias /home/lighthouse/xx/media/;
limit_rate 800k;
}
location / {
alias /home/lighthouse/xx/dist/;
index index.html;
}
location ~ ^/(api|django)/ {
set $CSRFTOKEN "";
if ($http_cookie ~* "CSRFTOKEN=(.+?)(?=;|$)") {
set $CSRFTOKEN "$1";
}
proxy_set_header X-CSRFToken $CSRFTOKEN;
proxy_pass http://localhost:2251;
proxy_pass_header Authorization;
proxy_pass_header WWW-Authenticate;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ws/ {
proxy_pass http://localhost:2252;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Ada Dockerfiles di direktori front-end ./client
dan back-end ./server
. Jika Anda perlu membuat image secara terpisah, Anda dapat membuatnya sendiri.
Di sini kita terutama berbicara tentang startup pembuatan buruh pelabuhan.
Ubah file docker-compose.yml sesuai dengan komentar. Ada dua layanan utama di dalamnya, satu backend
dan satu lagi frontend
.
Standarnya adalah menjalankan backend dan frontend dalam mode pengembangan. Jika Anda perlu menerapkan pada satu mesin dan ingin menggunakan komposisi buruh pelabuhan, kinerjanya akan lebih baik jika Anda beralih ke mode produksi.
rintisan
cd <path-to-your-project>
docker-compose up -d
Setelah startup berhasil, port aksesnya sama seperti sebelumnya, port antarmuka 8000, port front-end 8012. Jika Anda perlu mengubahnya, ubah sendiri docker-compose.yml.
Jika ingin menjalankan perintah docker-compose exec <nama layanan> <perintah>
Berikan kastanye:
Jika saya ingin menjalankan perintah perubahan data yang dihasilkan backend. python manage.py makemigrations
Kemudian gunakan pernyataan berikut
docker-compose exec backend python manage.py makemigrations
Pertama, Anda harus dapat menggunakan Django-rest-framework dan memahami solusi front-end vue-element-admin.
Proyek ini menggunakan perutean front-end. Back-end membaca kode izin pengguna sesuai dengan peran pengguna dan mengembalikannya ke front-end, yang dimuat oleh front-end (kode inti adalah atribut perms dan metode checkpermission. di tabel perutean)
Kode inti izin fungsi backend menulis ulang metode has_permission di server/apps/system/permission.py, dan menentukan kode izin perms di APIView dan ViewSet.
Karena izin data terkait dengan bisnis tertentu, kami cukup menetapkan beberapa aturan dan menulis ulang metode has_object_permission, Anda dapat menggunakannya sesuai kebutuhan.
Karena situasi sebenarnya lebih rumit, disarankan untuk menulis sendiri izin_kelas drf sesuai dengan situasi yang berbeda.
Diimplementasikan menggunakan paket seledri dan Django_celery_beat
Anda perlu menginstal redis dan memulainya pada port default, dan memulai pekerja dan mengalahkannya
Masuk ke lingkungan virtual dan mulai pekerja: celery -A server worker -l info -P eventlet
, tidak perlu menambahkan -P eventlet untuk sistem Linux
Masuk ke lingkungan virtual dan mulai ketukan: celery -A server beat -l info
Modul alur kerja mengacu pada implementasi loonflow dan dapat melihat dokumentasinya (logikanya sama, berkat loonflow).
Jika Anda ingin berkomunikasi, Anda dapat bergabung dengan grup QQ 235665873 atau grup WeChat