มีการเพิ่มสาขาฐานใหม่แล้ว สาขาฐานรวมเฉพาะแบ็กเอนด์เท่านั้น มันถูกเขียนใหม่โดยยึดตามแบ็กเอนด์ของสาขาหลัก มีการควบคุมสิทธิ์ที่ดีขึ้น เอ็นจิ้นเวิร์กโฟลว์ การจัดการการทำงานและการบำรุงรักษา การรองรับเว็บซ็อกเก็ต และมอบความหลากหลาย ฟังก์ชั่นทั่วไป บูรณาการเข้ากับยูทิลิตี้
การเปลี่ยนแปลงการทำงานในภายหลังจะขึ้นอยู่กับสาขาฐานเป็นหลัก และสาขาหลักจะจัดการเฉพาะความเข้ากันได้เท่านั้น คุณสามารถสลับไปยังสาขาฐานเพื่อดูรายละเอียดได้
แพลตฟอร์มการพัฒนาขั้นพื้นฐานสำหรับแอปพลิเคชันขนาดเล็กและขนาดกลางตามการควบคุมสิทธิ์ของโมเดล RBAC ส่วนหน้าและส่วนหลังจะถูกแยกออกจากกัน ใช้ django+django-rest-framework ส่วนหน้าใช้ vue+ElementUI และเทอร์มินัลมือถือ ใช้ uniapp+uView (สามารถเผยแพร่ h5 และโปรแกรมขนาดเล็กได้)
การตรวจสอบสิทธิ์ JWT คุณสามารถใช้ simple_history เพื่อใช้ฟังก์ชันการตรวจสอบ และสนับสนุนผยอง
โมดูลในตัวประกอบด้วย พจนานุกรมขององค์กรผู้ใช้บทบาทตำแหน่งข้อมูล ไลบรารีไฟล์งานตามเวลาเวิร์กโฟลว์ (โค้ดส่วนใหญ่ได้รับการอัปโหลด และโค้ดส่วนหลังจะอยู่ใน apps/wf)
เมื่อใช้เวิร์กโฟลว์ ขอแนะนำให้ใช้ Postgresql เป็นฐานข้อมูล สภาพแวดล้อมการแสดงตัวอย่างต่อไปนี้ใช้ SQLite ดังนั้นจึงไม่รองรับการสืบค้น json บางส่วน สำหรับวิธีการใช้งาน โปรดดูที่เอกสาร loonflow โดยพื้นฐานแล้วจะเหมือนกัน
รองรับการอนุญาตการทำงาน (ควบคุมแต่ละอินเทอร์เฟซ) และการอนุญาตข้อมูลอย่างง่าย (ทั้งหมด ระดับนี้และต่ำกว่า ระดับเดียวกันและต่ำกว่า ตัวฉันเอง ฯลฯ)
ยินดีต้อนรับสู่การหยิบยกประเด็น
ที่อยู่การแสดงตัวอย่างใช้ runserver ผู้ดูแลบัญชี และผู้ดูแลระบบรหัสผ่านโดยตรง กรุณาดำเนินการด้วยความระมัดระวังและอย่าเปลี่ยนรหัสผ่าน http://49.232.29.236:2222/
นำทางไปยังโฟลเดอร์เซิร์ฟเวอร์
สร้างสภาพแวดล้อมเสมือน python -m venv venv
เปิดใช้งานสภาพแวดล้อมเสมือน .venvscriptsactivate
ติดตั้งแพ็คเกจการพึ่งพา pip install -r requirements.txt
คัดลอก conf_e.py ในโฟลเดอร์เซิร์ฟเวอร์เพื่อ conf.py และแก้ไขการเชื่อมต่อฐานข้อมูลและพารามิเตอร์ DEBUG ภายในตามต้องการ
ซิง python manage.py migrate
คุณสามารถนำเข้าข้อมูลเริ่มต้นโดยใช้ python manage.py loaddata db.json
หรือใช้ฐานข้อมูล sqlite โดยตรง (รหัสผ่านบัญชีการจัดการขั้นสูงคือผู้ดูแลระบบ และฐานข้อมูลจะถูกรีเซ็ตเป็นระยะๆ)
สร้างผู้ดูแล python manage.py createsuperuser
เรียกใช้บริการ python manage.py runserver 8000
นำทางไปยังโฟลเดอร์ไคลเอนต์
ติดตั้ง node.js
ติดตั้งแพ็คเกจการพึ่งพา npm install --registry=https://registry.npmmirror.com
เรียกใช้บริการ npm run dev
แก้ไข nginx.conf เมื่อทำงานในเครื่องเพื่อแสดงไฟล์ทรัพยากร
listen 8012
location /media {
proxy_pass http://localhost:8000;
}
location / {
proxy_pass http://localhost:9528;
}
เรียกใช้ nginx.exe
เปิด localhost:8012 เพื่อเข้าถึง
เอกสารอินเทอร์เฟซ localhost:8000/api/swagger/
ที่อยู่แบ็กเอนด์ localhost:8000/django/admin/
ให้ความสนใจกับการแก้ไข conf.py เมื่อใช้งาน
ส่วนหน้าและส่วนหลังสามารถติดตั้งแยกกันได้โดยใช้พร็อกซี nginx คุณยังสามารถจัดแพ็คเกจและแทนที่ front-end dist ด้วย server/dist จากนั้นจึงดำเนินการ collectstatic
เริ่มใช้ gunicorn: เข้าสู่สภาพแวดล้อมเสมือนจริงและดำเนินการ gunicorn -w 5 -b 0.0.0.0:2251 server.wsgi
หากคุณต้องการ websocket คุณต้องกำหนดค่า daphne เพื่อเริ่มต้นด้วย คุณสามารถใช้ supervisor เพื่อตรวจสอบได้
การกำหนดค่า Nginx สามารถอ้างอิงได้ดังต่อไปนี้:
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;
}
}
มี Dockerfiles อยู่ในไดเร็กทอรี front-end ./client
และ back-end ./server
หากคุณต้องการสร้างอิมเมจแยกกัน คุณสามารถสร้างมันขึ้นมาเองได้
ที่นี่เราพูดถึงการเริ่มต้นเขียนนักเทียบท่าเป็นหลัก
แก้ไขไฟล์ docker-compose.yml ตามความคิดเห็น มีบริการหลักสองบริการ บริการแรกคือ backend
และอีกบริการคือ frontend
ค่าเริ่มต้นคือการเรียกใช้แบ็กเอนด์และฟรอนต์เอนด์ในโหมดการพัฒนา หากคุณต้องการปรับใช้บนเครื่องเดียวและต้องการใช้ docker-compose ประสิทธิภาพจะดีกว่าหากคุณเปลี่ยนเป็นโหมดการใช้งานจริง
เริ่มต้นขึ้น
cd <path-to-your-project>
docker-compose up -d
หลังจากเริ่มต้นสำเร็จ พอร์ตการเข้าถึงจะเหมือนเดิมคือพอร์ตอินเทอร์เฟซ 8000 พอร์ตส่วนหน้า 8012 หากคุณต้องการเปลี่ยน ให้เปลี่ยน docker-compose.yml ด้วยตัวเอง
หากคุณต้องการดำเนินการคำสั่ง docker-compose exec <ชื่อบริการ> <command>
ให้เกาลัด:
ถ้าฉันต้องการดำเนินการคำสั่งการเปลี่ยนแปลงข้อมูลที่สร้างแบ็กเอนด์ python manage.py makemigrations
จากนั้นใช้ข้อความต่อไปนี้
docker-compose exec backend python manage.py makemigrations
ขั้นแรก คุณต้องสามารถใช้ django-rest-framework และเข้าใจโซลูชันส่วนหน้า vue-element-admin ได้
โปรเจ็กต์นี้ใช้การกำหนดเส้นทางส่วนหน้า ส่วนแบ็คเอนด์จะอ่านรหัสสิทธิ์ผู้ใช้ตามบทบาทของผู้ใช้และส่งกลับไปยังส่วนหน้า ซึ่งโหลดโดยส่วนหน้า (รหัสหลักคือแอตทริบิวต์ perms และวิธีการตรวจสอบสิทธิ์ ในตารางเส้นทาง)
รหัสหลักของการอนุญาตฟังก์ชันแบ็กเอนด์จะเขียนวิธี has_permission ใหม่ภายใต้ server/apps/system/permission.py และกำหนดรหัสอนุญาต perms ใน APIView และ ViewSet
เนื่องจากการอนุญาตข้อมูลเกี่ยวข้องกับธุรกิจที่เฉพาะเจาะจง เราเพียงกำหนดกฎสองสามข้อและเขียนวิธี has_object_permission ใหม่ คุณสามารถใช้กฎเหล่านั้นได้ตามต้องการ
เนื่องจากสถานการณ์จริงมีความซับซ้อนมากขึ้น ขอแนะนำให้เขียน allowance_class ของ drf ด้วยตัวคุณเองตามสถานการณ์ต่างๆ
ดำเนินการโดยใช้แพ็คเกจ celery และ django_celery_beat
คุณต้องติดตั้ง Redis และสตาร์ทบนพอร์ตเริ่มต้น จากนั้นสตาร์ทคนงานและเอาชนะ
เข้าสู่สภาพแวดล้อมเสมือนและเริ่มต้นผู้ปฏิบัติงาน: celery -A server worker -l info -P eventlet
ไม่จำเป็นต้องเพิ่ม -P eventlet สำหรับระบบ Linux
เข้าสู่สภาพแวดล้อมเสมือนจริงและเริ่มจังหวะ: celery -A server beat -l info
โมดูลเวิร์กโฟลว์อ้างอิงถึงการใช้งาน loonflow และสามารถดูเอกสารประกอบได้ (ตรรกะก็เหมือนกัน ต้องขอบคุณ loonflow) โค้ดส่วนใหญ่ได้รับการอัปโหลดแล้ว
หากคุณเต็มใจที่จะสื่อสารคุณสามารถเข้าร่วมกลุ่ม QQ 235665873 หรือกลุ่ม WeChat