Saya ingin membuat port default yang manage.py runserver
mendengarkan di specifiable secara asing config.ini
. Apakah ada perbaikan yang lebih mudah daripada mem-parse sys.argv
di dalam manage.py
dan memasukkan porta yang dikonfigurasi?
Tujuannya adalah untuk berjalan ./manage.py runserver
tanpa harus menentukan alamat dan port setiap kali tetapi harus mengambil argumen dari config.ini
.
Jawaban:
buat skrip bash dengan yang berikut ini:
simpan sebagai runserver di direktori yang sama dengan manage.py
dan menjalankannya sebagai
sumber
call
. Jika solusi ini berhasil untuk Anda, pastikan untuk menandainya sebagai terselesaikan.supervisor
untuk ini sekarang, yang membuatnya lebih mudah untuk dikelola. :-) Tetapi solusi Anda mungkin adalah solusi terbersih selain menulisrunserver
skrip khusus .Sebenarnya cara termudah untuk mengubah (hanya) port dalam pengembangan server Django adalah seperti:
yang seharusnya menjalankan server pengembangan di http://127.0.0.1:7000/
sumber
Mulai dari Django 1.9, solusi paling sederhana yang saya temukan (berdasarkan solusi Quentin Stafford-Fraser) adalah menambahkan beberapa baris
manage.py
yang secara dinamis mengubah nomor port default sebelum menjalankanrunserver
perintah:sumber
from django.core.management.commands.runserver import Command as runserver; runserver.default_port = "8080
ke manage.py Anda. Anda juga dapat mengubah alamat mendengarkan dengan:runserver.default_addr
Semua perintah berikut ini mungkin untuk mengubah port saat menjalankan django:
sumber
Buat subkelas
django.core.management.commands.runserver.Command
dan timpadefault_port
anggota. Simpan file sebagai perintah manajemen Anda sendiri, misalnya di bawah<app-name>/management/commands/runserver.py
:Saya memuat pengaturan formulir port default di sini (yang pada gilirannya membaca file konfigurasi lain), tetapi Anda juga dapat membacanya dari beberapa file lain secara langsung.
sumber
runserver.py
. Haruskah saya mendaftarkannya di suatu tempat?runserver
perintah. Mungkin juga Anda memiliki aplikasi lain yang juga mendaftarkan perintah bernamarunserver
. Coba ganti nama perintah Anda dan lihat apakah itu dikenali.<app_name>/management/commands/runserver.py
, tetapi kemudian yang asli Djangorunserver
digunakan. Saat saya mengganti namanya menjadirun_server.py
, itu dikenali. Saya tidak melihat sesuatu yang istimewa tentangrunserver
pada halaman yang Anda tautkan.staticfiles
melakukan persis seperti yang Anda sarankan . Jadi, mengikuti instruksi Anda berhenti melayani file statis dalam pengembangan. Paling baik untuk mengimpordjango.contrib.staticfiles.management.commands
.Kami membuat perintah manajemen 'runserver' baru yang merupakan pembungkus tipis di sekitar yang standar tetapi mengubah port default. Secara kasar, Anda membuat
management/commands/runserver.py
dan memasukkan sesuatu seperti ini:sumber
Di Pycharm Anda cukup menambahkan port ke parameter
sumber
Saya sangat terlambat ke pesta di sini, tetapi jika Anda menggunakan IDE seperti PyCharm, ada opsi di 'Edit Konfigurasi' di bawah menu 'Jalankan' (Jalankan> Edit Konfigurasi) di mana Anda dapat menentukan port default. Ini tentu saja relevan hanya jika Anda men-debug / menguji melalui PyCharm.
sumber
Jika Anda ingin mengubah konfigurasi default, ikuti langkah-langkah ini:
Buka perintah tipe terminal
Sekarang buka file runserver.py di nano editor sebagai superuser
temukan variabel 'default_port' maka Anda akan melihat port default no adalah '8000'. Sekarang Anda dapat mengubahnya menjadi apa pun yang Anda inginkan.
Sekarang keluar dan simpan file menggunakan "CTRL + X dan Y untuk menyimpan file"
Catatan: Ganti <2/3> .x dengan versi python yang dapat digunakan
sumber
Buat variabel lingkungan di .bashrc Anda
ekspor RUNSERVER_PORT = 8010
Buat alias
alias runserver = 'django-admin runserver $ RUNSERVER_PORT'
Saya menggunakan zsh dan pembungkus virtualenvs. Saya menempatkan ekspor dalam proyek skrip postactivate dan port asign untuk setiap proyek.
sumber
Ini adalah posting lama tapi untuk mereka yang tertarik:
Jika Anda ingin mengubah nomor port default, maka ketika Anda menjalankan perintah "runserver", Anda mulai dengan port pilihan Anda lakukan ini:
DEFAULT_PORT = "8080"
Ini berfungsi dengan python 2.7 tetapi harus bekerja dengan versi python yang lebih baru juga. Semoga berhasil
sumber
Saya berjuang dengan masalah yang sama dan menemukan satu solusi. Saya rasa ini dapat membantu Anda. ketika Anda menjalankan
python manage.py runserver
, ini akan mengambil 127.0.0.1 sebagai alamat ip default dan 8000 sebagai nomor port default yang dapat dikonfigurasi di lingkungan python Anda. Dalam pengaturan python Anda, pergi ke<your python env>\Lib\site-packages\django\core\management\commands\runserver.py
dan set 1.default_port = '<your_port>'
2. temukan ini di bawah pegangan def dan set
if not options.get('addrport'): self.addr = '0.0.0.0' self.port = self.default_port
Sekarang jika Anda menjalankan "python manage.py runserver" ini akan berjalan secara default di "0.0.0.0:
Nikmati coding .....
sumber