Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Đôi khi bạn có thể cần thực hiện một tập lệnh Python trong shell hoặc dự án django. Có nhiều cách để làm điều này. Trong bài viết này, chúng tôi sẽ xem xét các cách khác nhau để chạy kịch bản Python trong Django. Điều này rất hữu ích nếu bạn cần chạy các tập lệnh Python cho các tác vụ nền trong dự án Django của bạn. Trong nhiều trường hợp, các nhà phát triển web sử dụng phương pháp này để thực hiện tập lệnh Python trong shell django và điều hành nó dưới dạng công việc để gửi tin nhắn và email tự động cho người dùng của họ.

Dưới đây là những cách khác nhau để chạy kịch bản Python, giả sử, Test.py trong dự án Django. Hầu hết các lệnh sau đây đều sử dụng. Nếu chúng không làm việc cho bạn, thì hãy thử các lệnh tương tự với Sud Sudo Python ./manage.py. Điều này có thể xảy ra vì biến đường dẫn Python trong hệ thống Linux của bạn không được đặt.

1. Sử dụng vỏ

Điều hướng đến thư mục gốc của dự án Django của bạn có chứa tệp Management.py và chạy tập lệnh Python bằng lệnh sau. Chúng tôi đã giả định rằng Manage.py và Test.py nằm trong cùng các thư mục.

$ ./manage.py shell < test.py

Nếu tập lệnh Python của bạn nằm trong một thư mục khác, bạn cần cung cấp đường dẫn đầy đủ đến tập lệnh Python của bạn. Trong ví dụ sau, tập lệnh Python của chúng tôi được đặt tại /home/ubuntu/test.py

$ ./manage.py shell < /home/ubuntu/test.py

2. Sử dụng Execfile

Bạn cũng có thể đăng nhập vào Shell Django trước với lệnh sau.

$ ./manage.py shell

và sau đó sử dụng lệnh execfile để chạy tập lệnh python

>>> execfile('/home/ubuntu/test.py')

Trong Python 3+, bạn sẽ cần sử dụng lệnh EXEC thay vì sử dụng Execfile.

>>> exec(open('/home/ubuntu/test.py').read())

3. Sử dụng Manage.py

Bạn cũng có thể sử dụng Manage.py một mình để chạy các tập lệnh Python như được hiển thị bên dưới.

$ ./manage.py /home/ubuntu/test.py

Trong bài viết này, chúng tôi đã thấy ba cách khác nhau để chạy các kịch bản Python từ Django Shell. Mặc dù không nên chạy các tập lệnh Python từ Django Shell, nhưng đây là một cách tuyệt vời để chạy các tác vụ nền. Điều này là do khi bạn chạy các tập lệnh Python từ Django Shell, nó cho phép bạn truy cập vào tất cả các mô hình, chế độ xem và chức năng được xác định trong dự án Django của bạn.

Cũng đọc:

Cách vô hiệu hóa xác thực CSRF trong Djangohow để kích hoạt CORS trong Django Projecthow để kết hợp các truy vấn trong Djangohow để sửa lỗi noreversematch trong djangohow để chuyển đổi PDF thành hình ảnh/jpg trong Linux
How to Enable CORS in Django Project
How to Combine Querysets in Django
How to Fix NoReverseMatch Error in Django
How to Convert PDF to Image/JPG in Linux

Bài viết liên quan:

Tôi cần thực hiện một kịch bản Python từ Shell Django. Tôi đã thử:

./manage.py shell << my_script.py

Nhưng nó không hoạt động. Nó chỉ chờ tôi viết một cái gì đó.

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Khi được hỏi ngày 31 tháng 5 năm 2013 lúc 9:05May 31, 2013 at 9:05

2

Phần

>>> exec(open('/home/ubuntu/test.py').read())
1 là sai, thay vào đó sử dụng
>>> exec(open('/home/ubuntu/test.py').read())
2:

$ ./manage.py shell < myscript.py

Bạn cũng có thể làm:

$ ./manage.py shell
...
>>> execfile('myscript.py')

Đối với Python3, bạn sẽ cần sử dụng

>>> exec(open('myscript.py').read())

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Jonathan

8.2758 Huy hiệu vàng52 Huy hiệu bạc71 Huy hiệu đồng8 gold badges52 silver badges71 bronze badges

Đã trả lời ngày 31 tháng 5 năm 2013 lúc 9:13May 31, 2013 at 9:13

codeapecodeapecodeape

95,6K24 Huy hiệu vàng151 Huy hiệu bạc181 Huy hiệu đồng24 gold badges151 silver badges181 bronze badges

12

Bạn không nên làm điều đó từ

>>> exec(open('/home/ubuntu/test.py').read())
3 - và điều này được dự định là bạn không thực sự nên thực hiện các tập lệnh ngẫu nhiên từ môi trường Django (nhưng có nhiều cách xung quanh này, xem các câu trả lời khác).

Nếu đây là một tập lệnh mà bạn sẽ chạy nhiều lần, thì bạn nên đặt nó như một lệnh tùy chỉnh tức là

$ ./manage.py shell < /home/ubuntu/test.py
0

Để thực hiện việc này, hãy tạo một tệp trong một subdir là

>>> exec(open('/home/ubuntu/test.py').read())
4 và
>>> exec(open('/home/ubuntu/test.py').read())
5 của
>>> exec(open('/home/ubuntu/test.py').read())
6 của bạn, tức là

$ ./manage.py shell < /home/ubuntu/test.py
1

và trong tệp này xác định lệnh tùy chỉnh của bạn (đảm bảo rằng tên của tệp là tên của lệnh bạn muốn thực thi từ

>>> exec(open('/home/ubuntu/test.py').read())
7)

$ ./manage.py shell < /home/ubuntu/test.py
2

Pianojames

3961 Huy hiệu vàng3 Huy hiệu bạc12 Huy hiệu đồng1 gold badge3 silver badges12 bronze badges

Đã trả lời ngày 31 tháng 5 năm 2013 lúc 9:10May 31, 2013 at 9:10

Danodonovandanodonovandanodonovan

Phim thương hiệu vàng 19k870 Huy hiệu bạc76 Huy hiệu đồng8 gold badges70 silver badges76 bronze badges

8

Đối với bất kỳ ai sử dụng Django 1.7+, có vẻ như chỉ cần nhập mô -đun cài đặt là không đủ.

Sau khi đào, tôi tìm thấy câu trả lời tràn chồng này: https://stackoverflow.com/a/23241093

Bây giờ bạn cần phải:

$ ./manage.py shell < /home/ubuntu/test.py
3

Không làm những điều trên, tôi đã gặp lỗi

>>> exec(open('/home/ubuntu/test.py').read())
8.

Tệp tập lệnh của tôi nằm trong cùng thư mục với dự án django của tôi (tức là trong cùng thư mục với Manage.py)

Đã trả lời ngày 27 tháng 6 năm 2014 lúc 16:14Jun 27, 2014 at 16:14

Cgonscgonscgons

1.2511 Huy hiệu vàng8 Huy hiệu bạc5 Huy hiệu đồng1 gold badge8 silver badges5 bronze badges

8

Tôi trễ bữa tiệc nhưng tôi hy vọng rằng phản hồi của tôi sẽ giúp ai đó: bạn có thể làm điều này trong kịch bản Python của bạn:

$ ./manage.py shell < /home/ubuntu/test.py
4

Phần còn lại của công cụ của bạn ở đây ....

người đàn ông thiếc

156K41 Huy hiệu vàng209 Huy hiệu bạc298 Huy hiệu Đồng41 gold badges209 silver badges298 bronze badges

Đã trả lời ngày 17 tháng 10 năm 2013 lúc 12:27Oct 17, 2013 at 12:27

e-nourie-nourie-nouri

2.5261 Huy hiệu vàng20 Huy hiệu bạc34 Huy hiệu đồng1 gold badge20 silver badges34 bronze badges

4

Nếu ipython có sẵn (

>>> exec(open('/home/ubuntu/test.py').read())
9) thì
$ ./manage.py /home/ubuntu/test.py
0 sẽ tự động sử dụng shell của nó và sau đó bạn có thể sử dụng lệnh ma thuật
$ ./manage.py /home/ubuntu/test.py
1:

$ ./manage.py shell < /home/ubuntu/test.py
5

Đã trả lời ngày 15 tháng 12 năm 2016 lúc 10:44Dec 15, 2016 at 10:44

Gitaarikgitaarikgitaarik

38.9K11 Huy hiệu vàng94 Huy hiệu bạc103 Huy hiệu đồng11 gold badges94 silver badges103 bronze badges

1

@Atulvarma đã cung cấp một nhận xét rất hữu ích trong câu trả lời không được chấp nhận không làm việc:

$ ./manage.py shell < /home/ubuntu/test.py
6

Đã trả lời ngày 3 tháng 11 năm 2016 lúc 13:03Nov 3, 2016 at 13:03

Raratiruraratiruraratiru

8.0083 huy hiệu vàng66 Huy hiệu bạc105 Huy hiệu đồng3 gold badges66 silver badges105 bronze badges

1

Nếu bạn không có nhiều lệnh trong tập lệnh của mình, hãy sử dụng nó:

$ ./manage.py shell < /home/ubuntu/test.py
7

Django Docs

Đã trả lời ngày 18 tháng 7 năm 2018 lúc 14:41Jul 18, 2018 at 14:41

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Tôi trễ bữa tiệc nhưng tôi hy vọng rằng phản hồi của tôi sẽ giúp ai đó: bạn có thể làm điều này trong kịch bản Python của bạn:

Phần còn lại của công cụ của bạn ở đây .... Import

$ ./manage.py shell < /home/ubuntu/test.py
8

người đàn ông thiếc Need to execute a Python script simply typing:

$ ./manage.py shell < /home/ubuntu/test.py
9

Trong đó tệp test.py giống như nhìn này:test.py file like look this:

$ ./manage.py shell
0

Finaly: Kết quả sẽ là: The result will be:

$ ./manage.py shell
1

Trong đó ['ishwardi', 'jhenaidha', 'vòng tròn hvdc'] là các giá trị của gmd_table

Đã trả lời ngày 9 tháng 6 năm 2021 lúc 11:07Jun 9, 2021 at 11:07

1

Bạn chỉ có thể chạy tập lệnh với bộ biến môi trường

$ ./manage.py /home/ubuntu/test.py
2. Đó là tất cả những gì cần thiết để thiết lập môi trường vỏ Django.

Điều này hoạt động trong django> = 1.4

Đã trả lời ngày 31 tháng 5 năm 2013 lúc 13:42May 31, 2013 at 13:42

Ziimaziimaziima

6864 Huy hiệu bạc15 Huy hiệu Đồng4 silver badges15 bronze badges

Như các câu trả lời khác chỉ ra nhưng không nêu rõ, những gì bạn thực sự cần không nhất thiết phải thực thi tập lệnh của bạn từ Shell Django, mà là để truy cập các ứng dụng của bạn mà không cần sử dụng Shell Django.

Điều này khác nhau rất nhiều phiên bản django với phiên bản django. Nếu bạn không tìm thấy giải pháp của mình trên chủ đề này, câu trả lời ở đây - tập lệnh Django để truy cập các đối tượng mô hình mà không cần sử dụng shell Manage.py - hoặc các tìm kiếm tương tự có thể giúp bạn.

Tôi đã phải bắt đầu my_command.py với

$ ./manage.py shell
2

Và sau đó chạy

$ ./manage.py /home/ubuntu/test.py
3

(Django 2.0.2)

Đã trả lời ngày 21 tháng 2 năm 2018 lúc 21:31Feb 21, 2018 at 21:31

SimonesimoneSimone

1562 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges

1

Lưu ý, phương pháp này đã không được dùng cho các phiên bản gần đây của Django! (> 1.3)

Một câu trả lời khác, bạn có thể thêm điều này vào đầu

$ ./manage.py /home/ubuntu/test.py
4

$ ./manage.py shell
3

và thực thi

$ ./manage.py /home/ubuntu/test.py
4 chỉ với Python trong thư mục mà bạn có
$ ./manage.py /home/ubuntu/test.py
6 nhưng đây là một chút hacky.

$ ./manage.py shell
4

Đã trả lời ngày 31 tháng 5 năm 2013 lúc 9:15May 31, 2013 at 9:15

Danodonovandanodonovandanodonovan

Phim thương hiệu vàng 19k870 Huy hiệu bạc76 Huy hiệu đồng8 gold badges70 silver badges76 bronze badges

$ ./manage.py shell
5

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Đã trả lời ngày 16 tháng 7 năm 2015 lúc 2:05Jul 16, 2015 at 2:05

1

Nếu bạn muốn chạy trong BG thậm chí còn tốt hơn:

$ ./manage.py shell
6

Đầu ra sẽ có trong

$ ./manage.py /home/ubuntu/test.py
7

Đã trả lời ngày 31 tháng 5 năm 2018 lúc 22:30May 31, 2018 at 22:30

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Kevin Hekevin anhKevin He

1.1847 Huy hiệu bạc19 Huy hiệu đồng7 silver badges19 bronze badges

Bạn có thể chỉ cần chạy:

$ ./manage.py /home/ubuntu/test.py
8

Nó nên làm công việc!

Đã trả lời ngày 15 tháng 5 lúc 2:30May 15 at 2:30

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Nếu bạn muốn thực thi tập lệnh khởi động (ví dụ: nhập một số mô hình django để hoạt động với chúng một cách tương tác) và vẫn ở trong shell django:

$ ./manage.py shell
7

Đã trả lời ngày 2 tháng 3 năm 2020 lúc 14:16Mar 2, 2020 at 14:16

ApogentusapogentusApogentus

6.1714 Huy hiệu vàng32 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges32 silver badges32 bronze badges

Một cái gì đó tôi chỉ thấy là thú vị là các tập lệnh Django, cho phép bạn viết các tập lệnh được chạy với Python Management.Py RunScript Foobar. Có thể tìm thấy thông tin chi tiết hơn về triển khai và thu hút ở đây, http://django-extensions.readthedocs.org/en/latest/index.html

Đã trả lời ngày 4 tháng 6 năm 2014 lúc 14:09Jun 4, 2014 at 14:09

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

django.setup () dường như không hoạt động.

Dường như cũng không được yêu cầu.

Điều này một mình làm việc.

$ ./manage.py shell
8

Đã trả lời ngày 15 tháng 9 năm 2014 lúc 20:12Sep 15, 2014 at 20:12

davidj411davidj411davidj411

9259 Huy hiệu bạc10 Huy hiệu đồng9 silver badges10 bronze badges

1

Hãy thử điều này nếu bạn đang sử dụng môi trường ảo:-

Python Management.py Shell

Để sử dụng lệnh đó, bạn phải ở bên trong môi trường ảo. cho việc sử dụng này:-

Workon vir_env_name

Ví dụ :-

$ ./manage.py shell
9

Lưu ý:- Đây là tên trang web của tôi và Jango là tên môi trường ảo của tôi :- Here mysite is my website name and jango is my virtual enviroment name

Đã trả lời ngày 22 tháng 1 năm 2015 lúc 12:46Jan 22, 2015 at 12:46

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Rahul Satalrahul SatalRahul Satal

1.8772 huy hiệu vàng27 Huy hiệu bạc49 Huy hiệu đồng2 gold badges27 silver badges49 bronze badges

Đến đây với câu hỏi tương tự như OP, và tôi đã tìm thấy câu trả lời yêu thích của mình chính xác trong sai lầm trong câu hỏi, cũng hoạt động trong Python 3:

>>> execfile('/home/ubuntu/test.py')
0

Đã trả lời ngày 8 tháng 5 năm 2019 lúc 17:21May 8, 2019 at 17:21

Mariotomomariotomomariotomo

9.1907 Huy hiệu vàng46 Huy hiệu bạc65 Huy hiệu Đồng7 gold badges46 silver badges65 bronze badges

Cách khác, nó thực hiện cái này:

>>> execfile('/home/ubuntu/test.py')
1

Điều này đang hoạt động trên Python2.7 và Django1.9

Đã trả lời ngày 7 tháng 8 năm 2019 lúc 21:47Aug 7, 2019 at 21:47

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Shell Django là cách tốt để thực hiện mô-đun Python với môi trường Django, nhưng không phải lúc nào cũng dễ dàng và mệt mỏi khi nhập các mô-đun và thực hiện các chức năng theo cách thủ công, đặc biệt là không hoàn thành tự động. Để giải quyết điều này, tôi đã tạo một tập lệnh shell nhỏ "RunScript.sh" cho phép bạn tận dụng tối đa sự tự động hoàn thành và lịch sử nhật ký của bảng điều khiển Linux.

NB: Sao chép RunScript.Sh vào dự án gốc và đặt Execute Right (CHMOD +X)

Ví dụ: Tôi muốn chạy chức năng Python có tên hiển thị (a, b, c) trong mô -đun do_somets.py trong myApp/do_folder/

Cách Django tiêu chuẩn (trình quản lý.py Shell):

>>> execfile('/home/ubuntu/test.py')
2

Với script (RunScript.sh):

>>> execfile('/home/ubuntu/test.py')
3

Kịch bản không bị giới hạn về số lượng đối số. Tuy nhiên, chỉ các đối số của các loại nguyên thủy được hỗ trợ (int, float, chuỗi)

Đã trả lời ngày 16 tháng 4 năm 2020 lúc 14:01Apr 16, 2020 at 14:01

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

3

Đến bữa tiệc muộn. Nhưng điều này có thể hữu ích cho ai đó.

Tất cả những gì bạn cần là tập lệnh của bạn và cài đặt

$ ./manage.py /home/ubuntu/test.py
9.

Chỉ cần chạy

./manage.py shell << my_script.py
0 có sẵn trong
./manage.py shell << my_script.py
1 và nhập tập lệnh mà bạn đã viết.

Nếu tập lệnh của bạn là

./manage.py shell << my_script.py
2 và nó nằm trong thư mục
./manage.py shell << my_script.py
3, bạn có thể chạy tập lệnh như sau.

>>> execfile('/home/ubuntu/test.py')
4

Và chỉ cần nhập kịch bản của bạn bên trong vỏ như sau.

>>> execfile('/home/ubuntu/test.py')
5

Đã trả lời ngày 12 tháng 5 năm 2020 lúc 14:34May 12, 2020 at 14:34

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

UnderoosunderoosUnderoos

4.1226 Huy hiệu vàng34 Huy hiệu bạc73 Huy hiệu đồng6 gold badges34 silver badges73 bronze badges

Trước tiên hãy kiểm tra tệp của bạn.

>>> execfile('/home/ubuntu/test.py')
6

Nếu tệp của bạn được hiển thị

>>> execfile('/home/ubuntu/test.py')
7

Bây giờ bạn có thể chạy tệp .py của mình bằng cách nhập PowerShell (thiết bị đầu cuối)

>>> execfile('/home/ubuntu/test.py')
8

Đã trả lời ngày 27 tháng 1 lúc 17:44Jan 27 at 17:44

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

KoopskoopsKoops

Phù hiệu bằng đồng 16277 bronze badges

Trên thực tế, nó rất đơn giản, một khi bạn mở shell django với

./manage.py shell << my_script.py
4 tốt hơn chỉ cần viết
./manage.py shell << my_script.py
5 để nhập thử nghiệm.py
then simply write
./manage.py shell << my_script.py
5
to import test.py

>>> execfile('/home/ubuntu/test.py')
9

Bây giờ bạn có thể thực thi các lệnh trong tệp này dưới dạng

>>> exec(open('/home/ubuntu/test.py').read())
0

Đã trả lời ngày 8 tháng 5 lúc 16:35May 8 at 16:35

Hướng dẫn how do you call a python script in django? - làm thế nào để bạn gọi một tập lệnh python trong django?

Đặt Globals (). Cập nhật (locals ()) sau khi nhập câu lệnhglobals().update(locals()) after importing statement

Đã trả lời ngày 14 tháng 6 lúc 6:39Jun 14 at 6:39

Tập trung Zhengf Focus Zhengfocus zheng

3051 Huy hiệu vàng4 Huy hiệu bạc12 Huy hiệu đồng1 gold badge4 silver badges12 bronze badges

Làm thế nào để bạn gọi một tệp python trong django?

Làm thế nào để chạy kịch bản Python trong dự án Django..
Sử dụng vỏ. Điều hướng đến thư mục gốc của dự án Django của bạn có chứa tệp Management.py và chạy tập lệnh Python bằng lệnh sau. ....
Sử dụng Execfile. Bạn cũng có thể đăng nhập vào Shell Django trước với lệnh sau. ....
Sử dụng Management.py ..

Làm cách nào để chạy tập lệnh Python trong mẫu Django?

requirements..
Bước 1: Cài đặt PIP Django. Pip Cài đặt Django ..
Bước 2: Mở cửa sổ nhắc nhở của bạn và tạo một thư mục gọi là "Django-Webapp" ....
Bước 3: Trong cửa sổ nhắc nhở của bạn, điều hướng đến Django-Webapp & Run Django-Admin StartProject GeniusVoice (hoặc tên dự án Django của riêng bạn) ....
Bước 4: Điều hướng đến Geniusvoice ..

Làm thế nào để bạn gọi một tệp .py?

Sử dụng lệnh Python để chạy các tập lệnh Python bằng lệnh Python, bạn cần mở một dòng lệnh và nhập từ Python, hoặc Python3 nếu bạn có cả hai phiên bản, theo sau là đường dẫn đến tập lệnh của bạn, giống như sau: $ python3Xin chào.open a command-line and type in the word python , or python3 if you have both versions, followed by the path to your script, just like this: $ python3 hello.py Hello World!

Bạn đặt mã python ở đâu trong django?

Đặt mã của bạn vào một số thư mục bên ngoài gốc tài liệu, chẳng hạn như /home /mycode.Các tệp này là: Thư mục MySite/ Root bên ngoài là một thùng chứa cho dự án của bạn.Tên của nó không quan trọng với Django;Bạn có thể đổi tên nó thành bất cứ thứ gì bạn thích./home/mycode . These files are: The outer mysite/ root directory is a container for your project. Its name doesn't matter to Django; you can rename it to anything you like.