Bài viết này mô tả cách làm cho Python kết nối với SharePoint, nghĩa là cách truy cập dữ liệu của hệ thống Microsoft SharePoint (2010, 2013 hoặc 2019) từ bên trong tập lệnh ngôn ngữ Python (sử dụng phiên bản 3. 7). Việc truyền dữ liệu được thực hiện thông qua lớp ODBC. Chúng tôi đã đạt được điều này trong Python bằng cách sử dụng phiên bản mô-đun pyodbc. 4. 0. 26 Show
Điều quan trọng cần lưu ý là trong bài viết này, chúng tôi sử dụng một sản phẩm thương mại có tên là Connect Bridge. Trên thực tế, đây là điều làm cho việc tích hợp Python / SharePoint trở nên khả thi, bằng cách cho phép giao tiếp dữ liệu theo cách mà bạn chắc chắn rằng mình không làm rối tung phía SharePoint (và, hãy tin tôi, điều này RẤT quan trọng). Bạn có thể dùng thử miễn phí Connect Bridge, vì vậy bạn có thể tự mình thử tất cả những thứ này "Cây cầu kết nối" này là gì?tôi rất vui vì bạn đã hỏi. Connect Bridge là một nền tảng tích hợp được phát triển bởi Connecting Software cho phép bạn kết nối bất kỳ phần mềm nào thông qua trình điều khiển ODBC, trình điều khiển JDBC hoặc Dịch vụ web. Tổng quan chung về kiến trúc của công cụ nằm trên sơ đồ kịch bản máy khách-máy chủ này Kiến trúc nền tảng tích hợp Connect Bridge Như bạn có thể thấy trên sơ đồ kiến trúc, công cụ này có thể được sử dụng để truy cập không chỉ dữ liệu Microsoft SharePoint từ bên trong tập lệnh Python của bạn, mà bạn còn có thể lấy/đặt dữ liệu từ/đến Microsoft Exchange và Microsoft Dynamics CRM cùng nhiều công cụ khác Mục đích - lấy dữ liệu SharePoint bằng PythonMục đích công việc của chúng tôi là tạo một tập lệnh Python cho phép chúng tôi nói chuyện với SharePoint qua Connect Bridge Chúng tôi sử dụng SharePoint, nhưng có thể sử dụng logic tương tự để kết nối với Microsoft Exchange hoặc CRM như Salesforce hoặc Dynamics Bắt đầuBây giờ hãy bắt đầu hướng dẫn này. Mục tiêu của chúng tôi là tạo một tập lệnh Python đơn giản truy cập phiên bản SharePoint. Chúng tôi cho rằng phiên bản SharePoint đã tồn tại (đảm bảo bạn có sẵn thông tin đăng nhập của mình). Đây là những bước đơn giản bạn cần làm theo 1. Yêu cầu dùng thử miễn phí và cài đặt Connect Bridge CHỌN UniqueId, ContentType, Created, Modified, ContentVersion TỪ Site_Pages GIỚI HẠN 10; để chọn 10 mục đầu tiên từ danh sách Trang web của SharePoint. Điều quan trọng cần lưu ý là mặc dù có vẻ như chúng ta đang sử dụng cơ sở dữ liệu trực tiếp, nhưng thực tế không phải vậy Connect Bridge đang truy cập API và sau đó trình bày nó như thể nó là một cơ sở dữ liệu. Khi bạn có truy vấn của mình, hãy sao chép nó, vì bạn cũng sẽ cần nó để chuyển nó vào tập lệnh Bắt tay vào viết kịch bảnCốt lõi và đồng thời là tệp duy nhất trong giải pháp của chúng tôi là CBQuery. py. Mã nguồn đầy đủ ở bên dưới. Vui lòng tập trung vào các dòng 70-92 mô tả giải pháp cốt lõi. Dưới đây là mô tả đầy đủ về cách thức hoạt động của tập lệnh này #!/usr/local/bin/python3.7 # encoding: utf-8 ''' CBQuery -- query data from, write data to SharePoint CBQuery is a script that allows to run SQL queries via Connect Bridge ODBC driver @author: Ana Neto and Michal Hainc @copyright: 2019 @contact: [email protected] @deffield updated: 04.07.2019 ''' import sys import os import pyodbc from argparse import ArgumentParser from argparse import RawDescriptionHelpFormatter __all__ = [] __version__ = 0.2 __date__ = '2019-07-04' __updated__ = '2019-07-04' DEBUG = 1 TESTRUN = 0 PROFILE = 0 class CLIError(Exception): '''Generic exception to raise and log different fatal errors.''' def __init__(self, msg): super(CLIError).__init__(type(self)) self.msg = "E: %s" % msg def __str__(self): return self.msg def __unicode__(self): return self.msg def main(argv=None): # IGNORE:C0111 '''Command line options.''' if argv is None: argv = sys.argv else: sys.argv.extend(argv) program_name = os.path.basename(sys.argv[0]) program_version = "v%s" % __version__ program_build_date = str(__updated__) program_version_message = '%%(prog)s %s (%s)' % (program_version, program_build_date) program_shortdesc = __import__('__main__').__doc__.split("n")[1] program_license = '''%s Created by Ana Neto and Michal Hainc on %s. Licensed under the Apache License 2.0 http://www.apache.org/licenses/LICENSE-2.0 Distributed on an "AS IS" basis without warranties or conditions of any kind, either express or implied. USAGE ''' % (program_shortdesc, str(__date__)) try: # Setup argument parser parser = ArgumentParser(description=program_license, formatter_class=RawDescriptionHelpFormatter) parser.add_argument('connstr') parser.add_argument('query') # Process arguments args = parser.parse_args() query = args.query connstr = args.connstr conn = pyodbc.connect(connstr) cursor = conn.cursor() cursor.execute(query) while 1: row = None try: row = cursor.fetchone() except: print(sys.exc_info()[1]) break if not row: break print(row) except KeyboardInterrupt: ### handle keyboard interrupt ### return 0 except: print(sys.exc_info()[1]) #indent = len(program_name) * " " #sys.stderr.write(program_name + ": " + repr(e) + "n") #sys.stderr.write(indent + " for help use --help") return 2 if __name__ == "__main__": if TESTRUN: import doctest doctest.testmod() if PROFILE: import cProfile import pstats profile_filename = 'CBQuery_profile.txt' cProfile.run('main()', profile_filename) statsfile = open("profile_stats.txt", "wb") p = pstats.Stats(profile_filename, stream=statsfile) stats = p.strip_dirs().sort_stats('cumulative') stats.print_stats() statsfile.close() sys.exit(0) sys.exit(main()) Đây là những gì kịch bản của chúng tôi đang làm • Các dòng 71-80 tập trung vào việc lấy các biến connstr và truy vấn từ các đối số dòng lệnh đầu vào. Đối với điều này, chúng tôi đã sử dụng mẫu tập lệnh argparse của pydev để giúp cuộc sống của tôi dễ dàng hơn Chạy CBQuery. tập lệnh pyChúng tôi biết rằng CBQuery của chúng tôi. py chấp nhận hai đối số dòng lệnh vị trí. connstr và truy vấn Chúng tôi cần sao chép những thứ này từ Connect Bridge Management Studio như đã giải thích ở trên (điểm 4) Chúng tôi có thể tạo danh sách liên hệ SharePoint và viết một mục không?Bây giờ, giả sử chúng ta muốn tạo một danh sách liên hệ trong SharePoint và tạo một liên hệ trong danh sách đó. Về cơ bản, chúng tôi cần tuân theo quy trình tương tự nhưng thay đổi truy vấn để sử dụng "Quy trình được lưu trữ". Trên thực tế, "Quy trình được lưu trữ" này sẽ truy cập SharePoint thông qua API, nhưng nó đang nhận dữ liệu vào SharePoint mà bạn đã chỉ định. Đây là truy vấn mà chúng ta cần chạy EXEC SP_CREATE_TABLE 'MyContacts', 'This table was created using Connect Bridge', true, 'Contacts'; Truy vấn tạo một danh sách SharePoint mới (Danh bạ của tôi), với một mô tả sẽ hiển thị trong thanh khởi động nhanh của trang SharePoint Bây giờ chúng ta cần gọi truy vấn sau để cập nhật phản ánh lược đồ ODBC của Connect Bridge của lược đồ SharePoint. Vì vậy, “bảng” mới của chúng tôi hiển thị với ứng dụng khách ODBC EXEC SP_UPDATE_SCHEMA; Chúng tôi có thể chèn một mục liên hệ vào danh sách liên hệ của mình tại thời điểm này INSERT INTO MyContacts (FirstName, LastName) VALUES ('Ana', 'Neto'); Giờ đây, bạn có thể xem mục nhập và danh sách SharePoint mới của chúng tôi trong Giao diện người dùng SharePoint Chúng tôi có thể chọn mục chúng tôi vừa tạo bằng cách chạy truy vấn sau SELECT FirstName,LastName FROM MyContacts Tải lên và tải xuống các tài liệu được chia sẻĐể tải lên tài liệu được chia sẻ, chúng tôi sẽ sử dụng danh sách SharePoint hiện có “Tài liệu” và "Quy trình được lưu trữ" SP_INSERT_SHAREDDOCUMENT. Các tham số nó lấy là • Tên bảng tài liệu được chia sẻ • Tên tệp • Thư mục (đường dẫn tương đối, trên máy chủ) • Kiểu MIME • Dữ liệu cho tập tin Chúng ta có thể chèn tài liệu bằng cách chạy câu lệnh sau
Nếu bạn muốn kiểm tra trước sự hiện diện của thư mục, bạn có thể chạy câu lệnh
Sau khi chạy SP_INSERT_SHAREDDOCUMENT, chúng ta có thể kiểm tra sự hiện diện của tài liệu trong bảng “Documents” bằng cách chạy câu lệnh
Chúng tôi cũng có thể tải xuống nội dung nhị phân của một tài liệu cụ thể từ một thư viện tài liệu cụ thể bằng cách chạy câu lệnh ________số 8 Tại thời điểm này, bạn có thể kiểm tra sự tồn tại của tài liệu được chia sẻ trong giao diện người dùng SharePoint Hạn chếCho đến nay, chúng tôi chỉ có thể sử dụng công cụ Connect Bridge từ các hệ điều hành Windows, vì không có thư viện máy khách ODBC Linux nào (và chúng tôi không chắc liệu điều đó có khả thi hay không). Vì vậy, hãy chắc chắn chơi với các tập lệnh Python của bạn trên máy Windows Phần kết luậnChúng ta đã thấy cách truy cập dữ liệu SharePoint trong Python có thể dễ dàng thực hiện bằng nền tảng tích hợp Connect Bridge. Bây giờ hãy tưởng tượng rằng những gì bạn đã thấy trong bài viết này cũng có thể thực hiện được với Microsoft Dynamics CRM và Microsoft Exchange. Vâng, với Connect Bridge thì điều này hoàn toàn có thể và cách thực hiện cũng tương tự Tôi có thể liên hệ với ai để đặt câu hỏi?“Tên tôi là Ana Neto, và tôi là cố vấn kỹ thuật cho Phần mềm kết nối. Tôi là kỹ sư phần mềm từ năm 1997 và tôi thích thế giới của những khả năng kết nối Bridge mở ra Python có thể lấy từ SharePoint không?Với Trình kết nối CData Python dành cho SharePoint và khung petl, bạn có thể xây dựng các ứng dụng và quy trình được kết nối với SharePoint để trích xuất, chuyển đổi và tải dữ liệu SharePoint
Python đọc tệp từ SharePoint như thế nào?đây là mã. . nhập sharepy từ sharepy nhập kết nối từ sharepy nhập SharePointSession nhật ký nhập khẩu tên người dùng = 'abcd123' mật khẩu = '1234' s = chia sẻ. kết nối (SPUrl, tên người dùng, mật khẩu) # Tạo tiêu đề cho yêu cầu http Làm cách nào để đọc danh sách SharePoint trong Python?3 – Mã nguồn hoàn chỉnh . Đọc nội dung trang web Sử dụng một thể hiện của lớp BeautifulSoup để phân tích nội dung trang web Kết nối với danh sách SharePoint Tải xuống tất cả các mục trong danh sách SharePoint So sánh dữ liệu được trích xuất từ trang web với dữ liệu được tải xuống từ danh sách SharePoint SharePoint đọc dữ liệu như thế nào?Mở Power BI Desktop > tại Tab Home > Nhấp vào Get Data > nhấp vào More Trong hộp thoại Lấy dữ liệu, Tìm kiếm SharePoint > Chọn Danh sách SharePoint > bấm Kết nối Cung cấp URL Trang web SharePoint > bấm OK Trong hộp thoại Bộ điều hướng, chọn danh sách cần thiết > bấm Tải |