Description: Missing Visual Studio 2022 integration How to repeat: Try to install MySQL for Viusal Studio Suggested fix: Would be nice to have such things when Visual Studio is GA I do not understand why you and your team are not on time with that. Since over a year the first VS 2022 Betas where out. [*knocking head on the wall*] Thats the reason why two of our customers changed from MySQL [Enterprise - so they where paying customers] to M$ SQL Server. There're devs they fix problems in a really short time! I'm really unhappy with you guys and I'm thinking about stopping to develop further with MySQL compatibility in our products!
Vì vậy, đây có phải là Sự cố MySQL/Oracle hay đây là Sự cố Microsoft/Visual Studio?
- Bạn không thể làm việc với MySql nếu bạn sử dụng Visual Studio 2022
- You can only use MySql with Visual Studio 2019
- It may be possible to use VS 2019 to make the connection and then use VS 2022 to develop in
So, Visual Studio 2022 has been out long enough for the connector to be created. Oracle must know that many developers use the latest versions of VS, and Microsoft I am sure understands that many developers use MySql
Both companies need to understand that not everyone uses Oracle or a Microsoft Database - or Azure, however, those products seem to work just fine right out of the box
Django is a high-level Python framework designed for rapid, secure, and scalable web development. Django includes rich support for URL routing, page templates, and working with data
In this Django tutorial, you create a simple Django app with three pages that use a common base template. You create this app in the context of Visual Studio Code in order to understand how to work with Django in the VS Code terminal, editor, and debugger. This tutorial does not explore various details about Django itself, such as working with data models and creating an administrative interface. For guidance on those aspects, refer to the Django documentation links at the end of this tutorial
The completed code project from this Django tutorial can be found on GitHub. python-sample-vscode-django-tutorial
If you have any problems, you can search for answers or ask a question on the Python extension Discussions Q&A
Prerequisites
To successfully complete this Django tutorial, you must do the following [which are the same steps as in the general Python tutorial]
Install the Python extension
Install a version of Python 3 [for which this tutorial is written]. Options include
- [All operating systems] A download from python. org; typically use the Download Python 3. 9. 1 button that appears first on the page [or whatever is the latest version]
- [Linux] The built-in Python 3 installation works well, but to install other Python packages you must run
6 in the terminalpython manage.py migrate
- [macOS] An installation through Homebrew on macOS using
7 [the system install of Python on macOS is not supported]python manage.py migrate
- [All operating systems] A download from Anaconda [for data science purposes]
On Windows, make sure the location of your Python interpreter is included in your PATH environment variable. You can check the location by running
8 at the command prompt. If the Python interpreter's folder isn't included, open Windows Settings, search for "environment", select Edit environment variables for your account, then edit the Path variable to include that folderpython manage.py migrate
Create a project environment for the Django tutorial
In this section, you create a virtual environment in which Django is installed. Using a virtual environment avoids installing Django into a global Python environment and gives you exact control over the libraries used in an application. A virtual environment also makes it easy to Create a requirements. txt file for the environment
On your file system, create a project folder for this tutorial, such as
9python manage.py migrate
In that folder, use the following command [as appropriate to your computer] to create a virtual environment named
0 based on your current interpreterPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
# Linux sudo apt-get install python3-venv # If needed python3 -m venv .venv source .venv/bin/activate # macOS python3 -m venv .venv source .venv/bin/activate # Windows py -3 -m venv .venv .venv\scripts\activate
Note. Use a stock Python installation when running the above commands. If you use
1 from an Anaconda installation, you see an error because the ensurepip module isn't available, and the environment is left in an unfinished statePerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
Open the project folder in VS Code by running
2, or by running VS Code and using the File > Open Folder commandPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
In VS Code, open the Command Palette [View > Command Palette or [ ⇧⌘P [Windows, Linux Ctrl+Shift+P ] ]]. Then select the Python. Select Interpreter command.
The command presents a list of available interpreters that VS Code can locate automatically [your list will vary; if you don't see the desired interpreter, see Configuring Python environments]. From the list, select the virtual environment in your project folder that starts with
3 orPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
4Performing system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
Run Terminal. Create New Terminal [ ⌃⇧` [Windows, Linux Ctrl+Shift+` ] ] from the Command Palette, which creates a terminal and automatically activates the virtual environment by running its activation script.
Note. On Windows, if your default terminal type is PowerShell, you may see an error that it cannot run activate. ps1 because running scripts is disabled on the system. The error provides a link for information on how to allow scripts. Otherwise, use Terminal. Select Default Shell to set "Command Prompt" or "Git Bash" as your default instead
The selected environment appears on the right side of the VS Code status bar, and notices the ['. venv'. venv] indicator that tells you that you're using a virtual environment
Update pip in the virtual environment by running the following command in the VS Code Terminal
1python manage.py migrate
Install Django in the virtual environment by running the following command in the VS Code Terminal
2python manage.py migrate
You now have a self-contained environment ready for writing Django code. VS Code activates the environment automatically when you use Terminal. Create New Terminal [ ⌃⇧` [Windows, Linux Ctrl+Shift+` ] ]. If you open a separate command prompt or terminal, activate the environment by running
Performing system checks...
System check identified no issues [0 silenced].
January 15, 2021 - 14:33:31
Django version 3.1.5, using settings 'web_project.settings'
Starting development server at //127.0.0.1:8000/
Quit the server with CTRL-BREAK.
5 [Linux/macOS] or Performing system checks...
System check identified no issues [0 silenced].
January 15, 2021 - 14:33:31
Django version 3.1.5, using settings 'web_project.settings'
Starting development server at //127.0.0.1:8000/
Quit the server with CTRL-BREAK.
6 [Windows]. You know the environment is activated when the command prompt shows [. venv] at the beginning. Create and run a minimal Django app
In Django terminology, a "Django project" is composed of several site-level configuration files, along with one or more "apps" that you deploy to a web host to create a full web application. A Django project can contain multiple apps, each of which typically has an independent function in the project, and the same app can be in multiple Django projects. An app, for its part, is just a Python package that follows certain conventions that Django expects
Sau đó, để tạo một ứng dụng Django tối thiểu, trước tiên, cần tạo dự án Django để đóng vai trò là vùng chứa cho ứng dụng, sau đó tự tạo ứng dụng. Đối với cả hai mục đích, bạn sử dụng tiện ích quản trị Django,
Performing system checks...
System check identified no issues [0 silenced].
January 15, 2021 - 14:33:31
Django version 3.1.5, using settings 'web_project.settings'
Starting development server at //127.0.0.1:8000/
Quit the server with CTRL-BREAK.
7, được cài đặt khi bạn cài đặt gói DjangoTạo dự án Django
Trong VS Code Terminal nơi môi trường ảo của bạn được kích hoạt, hãy chạy lệnh sau
6python manage.py migrate
Lệnh
8 này giả định [bằng cách sử dụngPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
9 ở cuối] rằng thư mục hiện tại là thư mục dự án của bạn và tạo các mục sau trong đóPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
90. Tiện ích quản trị dòng lệnh Django cho dự án. Bạn chạy các lệnh quản trị cho dự án bằng cách sử dụngpython manage.py migrate
91python manage.py migrate
Thư mục con có tên
92, chứa các tệp saupython manage.py migrate
93. một tệp trống cho Python biết rằng thư mục này là một gói Pythonpython manage.py migrate
94. một điểm vào cho các máy chủ web tương thích với ASGI để phục vụ dự án của bạn. Bạn thường để nguyên tệp này vì nó cung cấp móc nối cho các máy chủ web sản xuấtpython manage.py migrate
95. chứa các cài đặt cho dự án Django mà bạn sửa đổi trong quá trình phát triển ứng dụng webpython manage.py migrate
96. chứa mục lục cho dự án Django mà bạn cũng sửa đổi trong quá trình phát triểnpython manage.py migrate
97. một điểm vào cho các máy chủ web tương thích với WSGI để phục vụ dự án của bạn. Bạn thường để nguyên tệp này vì nó cung cấp móc nối cho các máy chủ web sản xuấtpython manage.py migrate
Tạo cơ sở dữ liệu phát triển trống bằng cách chạy lệnh sau
python manage.py migrate
When you run the server the first time, it creates a default SQLite database in the file
98 that is intended for development purposes, but can be used in production for low-volume web apps. For additional information about databases, see the Types of databases sectionpython manage.py migrate
To verify the Django project, make sure your virtual environment is activated, then start Django's development server using the command
99. The server runs on the default port 8000, and you see output like the following output in the terminal windowpython manage.py migrate
Performing system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
Django's built-in web server is intended only for local development purposes. When you deploy to a web host, however, Django uses the host's web server instead. The
97 andpython manage.py migrate
94 modules in the Django project take care of hooking into the production serverspython manage.py migrate
If you want to use a different port than the default 8000, specify the port number on the command line, such as
32python manage.py migrate
Ctrl+click the
33 URL in the terminal output window to open your default browser to that address. If Django is installed correctly and the project is valid, you see the default page shown below. The VS Code terminal output window also shows the server log.python manage.py migrate
When you're done, close the browser window and stop the server in VS Code using Ctrl+C as indicated in the terminal output window.
Create a Django app
In the VS Code Terminal with your virtual environment activated, run the administrative utility's
34 command in your project folder [wherepython manage.py migrate
90 resides]python manage.py migrate
9python manage.py migrate
The command creates a folder called
36 that contains a number of code files and one subfolder. Of these, you frequently work withpython manage.py migrate
37 [that contains the functions that define pages in your web app] andpython manage.py migrate
38 [that contains classes defining your data objects]. Thepython manage.py migrate
39 folder is used by Django's administrative utility to manage database versions as discussed later in this tutorial. There are also the filespython manage.py migrate
20 [app configuration],python manage.py migrate
21 [for creating an administrative interface], andpython manage.py migrate
22 [for creating tests], which are not covered herepython manage.py migrate
Modify
23 to match the following code, which creates a single view for the app's home pagepython manage.py migrate
3python manage.py migrate
Create a file,
24, with the contents below. Thepython manage.py migrate
96 file is where you specify patterns to route different URLs to their appropriate views. The code below contains one route to map root URL of the app [python manage.py migrate
26] to thepython manage.py migrate
27 function that you just added topython manage.py migrate
23python manage.py migrate
2python manage.py migrate
The
92 folder also contains apython manage.py migrate
96 file, which is where URL routing is actually handled. Openpython manage.py migrate
51 and modify it to match the following code [you can retain the instructive comments if you like]. This code pulls in the app'sPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
24 usingpython manage.py migrate
53, which keeps the app's routes contained within the app. This separation is helpful when a project contains multiple appsPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
5Performing system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
Save all modified files
In the VS Code Terminal, again with the virtual environment activated, run the development server with
99 and open a browser topython manage.py migrate
33 to see a page that renders "Hello, Django"python manage.py migrate
Create a debugger launch profile
You're probably already wondering if there's an easier way to run the server and test the app without typing
python manage.py migrate
99 each time. May mắn thay, có. You can create a customized launch profile in VS Code, which is also used for the inevitable exercise of debuggingChuyển sang chế độ xem Chạy trong Mã VS [sử dụng thanh hoạt động bên trái hoặc F5 ]. You may see the message "To customize Run and Debug create a launch. json file". This means that you don't yet have a
57 file containing debug configurations. VS Code can create that for you if you click on the create a launch. json file link.Performing system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
Chọn liên kết và Mã VS sẽ nhắc cấu hình gỡ lỗi. Select Django from the dropdown and VS Code will populate a new
57 file with a Django run configuration. ThePerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
57 file contains a number of debugging configurations, each of which is a separate JSON object within thePerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
100 arraypython manage.py migrate
Scroll down to and examine the configuration with the name "Python. Django"
10python manage.py migrate
This configuration tells VS Code to run
101 using the selected Python interpreter and the arguments in thepython manage.py migrate
102 list. Launching the VS Code debugger with this configuration, then, is the same as runningpython manage.py migrate
99 in the VS Code Terminal with your activated virtual environment. [You can add a port number likepython manage.py migrate
104 topython manage.py migrate
102 if desired. ] Thepython manage.py migrate
106 entry also tells VS Code to enable debugging of Django page templates, which you see later in this tutorialpython manage.py migrate
Test the configuration by selecting the Run > Start Debugging menu command, or selecting the green Start Debugging arrow next to the list [ F5 ].
Ctrl+nhấp URL
33 trong cửa sổ đầu ra của thiết bị đầu cuối để mở trình duyệt và xem ứng dụng có đang chạy bình thường không.python manage.py migrate
Đóng trình duyệt và dừng trình gỡ lỗi khi bạn hoàn tất. Để dừng trình gỡ lỗi, hãy sử dụng nút Dừng trên thanh công cụ [hình vuông màu đỏ] hoặc lệnh Chạy > Dừng gỡ lỗi [ ⇧F5 [Windows, Linux Shift+F5]].
You can now use the Run > Start Debugging at any time to test the app, which also has the benefit of automatically saving all modified files
Khám phá trình gỡ lỗi
Debugging gives you the opportunity to pause a running program on a particular line of code. When a program is paused, you can examine variables, run code in the Debug Console panel, and otherwise take advantage of the features described on Debugging. Chạy trình gỡ lỗi cũng tự động lưu mọi tệp đã sửa đổi trước khi phiên gỡ lỗi bắt đầu
Before you begin. Đảm bảo rằng bạn đã dừng ứng dụng đang chạy ở cuối phần trước bằng cách sử dụng Ctrl+C trong thiết bị đầu cuối. Nếu bạn để ứng dụng chạy trong một thiết bị đầu cuối, ứng dụng đó sẽ tiếp tục sở hữu cổng. Do đó, khi bạn chạy ứng dụng trong trình gỡ lỗi bằng cùng một cổng, ứng dụng đang chạy ban đầu sẽ xử lý tất cả các yêu cầu và bạn sẽ không thấy bất kỳ hoạt động nào trong ứng dụng được gỡ lỗi và chương trình sẽ không dừng tại các điểm dừng. Nói cách khác, nếu trình gỡ lỗi dường như không hoạt động, hãy đảm bảo rằng không có phiên bản ứng dụng nào khác đang chạy.
Trong
24, thêm một tuyến đường vào danh sáchpython manage.py migrate
109python manage.py migrate
11python manage.py migrate
Đối số đầu tiên của
8 định nghĩa một route "hello/" chấp nhận một chuỗi biến có tên name. Chuỗi được chuyển đến hàmpython manage.py migrate
111 được chỉ định trong đối số thứ hai chopython manage.py migrate
8python manage.py migrate
Các tuyến URL phân biệt chữ hoa chữ thường. Ví dụ: tuyến đường
113 khác với tuyến đườngpython manage.py migrate
114. Nếu bạn muốn cùng một chức năng xem xử lý cả hai, hãy xác định đường dẫn cho từng biến thểpython manage.py migrate
Thay thế nội dung của
37 bằng mã sau để xác định hàmpython manage.py migrate
116 mà bạn có thể thực hiện trong trình gỡ lỗipython manage.py migrate
12python manage.py migrate
Biến
117 được xác định trong định tuyến URL được cung cấp làm đối số cho hàmpython manage.py migrate
116. Như được mô tả trong các nhận xét mã, luôn lọc thông tin tùy ý do người dùng cung cấp để tránh các cuộc tấn công khác nhau vào ứng dụng của bạn. Trong trường hợp này, mã lọc đối số tên chỉ chứa các chữ cái, tránh đưa vào các ký tự điều khiển, HTML, v.v. [Khi bạn sử dụng các mẫu trong phần tiếp theo, Django sẽ tự động lọc và bạn không cần mã này. ]python manage.py migrate
Đặt điểm ngắt ở dòng mã đầu tiên trong hàm
116 [python manage.py migrate
120] bằng cách thực hiện bất kỳ một trong các thao tác saupython manage.py migrate
- Khi con trỏ nằm trên dòng đó, hãy nhấn F9 hoặc,
- Với con trỏ trên dòng đó, chọn lệnh menu Run > Toggle Breakpoint, hoặc,
- Nhấp trực tiếp vào lề bên trái của số dòng [dấu chấm màu đỏ mờ xuất hiện khi di chuột vào đó]
Điểm ngắt xuất hiện dưới dạng chấm đỏ ở lề trái
Khởi động trình gỡ lỗi bằng cách chọn lệnh menu Chạy > Bắt đầu gỡ lỗi hoặc chọn mũi tên Bắt đầu gỡ lỗi màu lục bên cạnh danh sách [ F5 ].
Quan sát rằng thanh trạng thái thay đổi màu sắc để biểu thị gỡ lỗi
Một thanh công cụ sửa lỗi [hiển thị bên dưới] cũng xuất hiện trong Mã VS chứa các lệnh theo thứ tự sau. Tạm dừng [hoặc Tiếp tục, F5 ], Bước qua [ F10 ], . Xem gỡ lỗi Mã VS để biết mô tả của từng lệnh. F11], Step Out [⇧F11 [Windows, Linux Shift+F11]], Restart [⇧⌘F5 [Windows, Linux Ctrl+Shift+F5]], and Stop [⇧F5 [Windows, Linux Shift+F5]]. See VS Code debugging for a description of each command.
Đầu ra xuất hiện trong thiết bị đầu cuối "Bảng điều khiển gỡ lỗi Python". Mở trình duyệt và điều hướng đến
121. Trước khi trang hiển thị, Mã VS tạm dừng chương trình tại điểm dừng bạn đã đặt. Mũi tên nhỏ màu vàng trên điểm dừng cho biết đây là dòng mã tiếp theo sẽ chạypython manage.py migrate
Sử dụng Step Over để chạy câu lệnh
120python manage.py migrate
Ở phía bên trái của cửa sổ Mã VS, bạn sẽ thấy ngăn Biến hiển thị các biến cục bộ, chẳng hạn như
123, cũng như các đối số, chẳng hạn nhưpython manage.py migrate
117. Bên dưới đó là các ô dành cho Đồng hồ, Ngăn xếp cuộc gọi và Điểm ngắt [xem gỡ lỗi Mã VS để biết chi tiết]. Trong phần Người dân địa phương, hãy thử mở rộng các giá trị khác nhau. Bạn cũng có thể bấm đúp vào các giá trị [hoặc sử dụng Enter [Windows, Linux F2]] to modify them. Changing variables such aspython manage.py migrate
123, however, can break the program. Developers typically make changes only to correct values when the code didn't produce the right value to begin with.python manage.py migrate
Khi một chương trình bị tạm dừng, bảng điều khiển Gỡ lỗi [khác với "Bảng điều khiển gỡ lỗi Python" trong bảng Terminal] cho phép bạn thử nghiệm các biểu thức và thử các đoạn mã bằng trạng thái hiện tại của chương trình. Ví dụ: khi bạn đã bước qua dòng
120, bạn có thể thử nghiệm với các định dạng ngày/giờ khác nhau. Trong trình chỉnh sửa, chọn mã có nội dungpython manage.py migrate
127, sau đó nhấp chuột phải và chọn Gỡ lỗi. Đánh giá để gửi mã đó tới bảng điều khiển gỡ lỗi, nơi mã sẽ chạypython manage.py migrate
13python manage.py migrate
Mẹo. Bảng điều khiển gỡ lỗi cũng hiển thị các ngoại lệ từ bên trong ứng dụng có thể không xuất hiện trong thiết bị đầu cuối. Ví dụ: nếu bạn thấy thông báo "Tạm dừng do ngoại lệ" trong khu vực Ngăn xếp cuộc gọi của chế độ xem Chạy và gỡ lỗi, hãy chuyển sang Bảng điều khiển gỡ lỗi để xem thông báo ngoại lệ
Sao chép dòng đó vào dấu nhắc > ở cuối bảng điều khiển gỡ lỗi và thử thay đổi định dạng
14python manage.py migrate
Quay thêm vài dòng mã, nếu muốn thì chọn Tiếp tục [ F5 ] để chương trình chạy. Cửa sổ trình duyệt hiển thị kết quả.
Thay đổi dòng trong mã để sử dụng định dạng ngày giờ khác, ví dụ:
128, sau đó lưu tệp. Máy chủ Django sẽ tự động tải lại, nghĩa là các thay đổi sẽ được áp dụng mà không cần khởi động lại trình gỡ lỗi. Làm mới trang trên trình duyệt để xem cập nhậtpython manage.py migrate
Đóng trình duyệt và dừng trình gỡ lỗi khi bạn hoàn tất. Để dừng trình gỡ lỗi, hãy sử dụng nút Dừng trên thanh công cụ [hình vuông màu đỏ] hoặc lệnh Chạy > Dừng gỡ lỗi [ ⇧F5 [Windows, Linux Shift+F5]].
Mẹo. Để dễ dàng điều hướng liên tục đến một URL cụ thể như
121, hãy xuất URL đó bằng cách sử dụng câu lệnhpython manage.py migrate
130 ở đâu đó trong một tệp nhưpython manage.py migrate
37. URL xuất hiện trong VS Code Terminal nơi bạn có thể sử dụng Ctrl+click để mở trong trình duyệt.python manage.py migrate
Vào lệnh Definition và Peek Definition
Trong quá trình làm việc với Django hoặc bất kỳ thư viện nào khác, bạn có thể muốn tự kiểm tra mã trong các thư viện đó. Mã VS cung cấp hai lệnh thuận tiện điều hướng trực tiếp đến định nghĩa của các lớp và các đối tượng khác trong bất kỳ mã nào
Chuyển đến Định nghĩa nhảy từ mã của bạn sang mã xác định một đối tượng. Ví dụ: trong
37, nhấp chuột phải vàopython manage.py migrate
133 trong hàmpython manage.py migrate
134 và chọn Chuyển đến Định nghĩa [hoặc sử dụng F12 ], điều hướng đến định nghĩa lớp .python manage.py migrate
Định nghĩa Peek [ ⌥F12 [Windows Alt+F12, Linux Ctrl+Shift+F10], also on the right-click context menu], is similar, but displays the class definition directly in the editor [making space in the editor window to avoid obscuring any code]. Press Escape để đóng cửa sổ Peek hoặc sử dụng dấu x ở góc trên bên phải.
Sử dụng mẫu để hiển thị trang
Ứng dụng bạn đã tạo cho đến thời điểm này trong hướng dẫn này chỉ tạo các trang web văn bản thuần túy từ mã Python. Mặc dù có thể tạo HTML trực tiếp trong mã, nhưng các nhà phát triển tránh thực hành như vậy vì nó mở ứng dụng cho các cuộc tấn công kịch bản chéo trang [XSS]. Ví dụ, trong hàm
python manage.py migrate
116 của hướng dẫn này, người ta có thể nghĩ đến việc định dạng đầu ra bằng mã với thứ gì đó giống như python manage.py migrate
136, trong đó kết quả trong python manage.py migrate
137 được cung cấp trực tiếp cho trình duyệt. Việc mở này cho phép kẻ tấn công đặt HTML độc hại, bao gồm cả mã JavaScript, vào URL kết thúc bằng python manage.py migrate
138 và do đó sẽ được chạy trong trình duyệtMột cách thực hành tốt hơn nhiều là loại bỏ hoàn toàn HTML khỏi mã của bạn bằng cách sử dụng các mẫu để mã của bạn chỉ liên quan đến các giá trị dữ liệu chứ không liên quan đến kết xuất
Trong Django, mẫu là một tệp HTML chứa các trình giữ chỗ cho các giá trị mà mã cung cấp trong thời gian chạy. Sau đó, công cụ tạo khuôn mẫu Django sẽ đảm nhận việc thay thế khi hiển thị trang và cung cấp tính năng thoát tự động để ngăn chặn các cuộc tấn công XSS [nghĩa là, nếu bạn đã thử sử dụng HTML trong một giá trị dữ liệu, bạn sẽ thấy HTML chỉ được hiển thị dưới dạng văn bản thuần túy]. Do đó, mã chỉ liên quan đến các giá trị dữ liệu và bản mẫu chỉ liên quan đến đánh dấu. Các mẫu Django cung cấp các tùy chọn linh hoạt, chẳng hạn như kế thừa mẫu, cho phép bạn xác định một trang cơ sở với đánh dấu chung và sau đó xây dựng trên cơ sở đó với các bổ sung dành riêng cho từng trang
Trong phần này, bạn bắt đầu bằng cách tạo một trang duy nhất bằng cách sử dụng một mẫu. Trong các phần tiếp theo, bạn định cấu hình ứng dụng để phân phát tệp tĩnh, sau đó tạo nhiều trang cho ứng dụng, mỗi trang chứa thanh điều hướng từ mẫu cơ sở. Các mẫu Django cũng hỗ trợ luồng điều khiển và phép lặp, như bạn thấy sau trong hướng dẫn này trong ngữ cảnh gỡ lỗi mẫu
Trong tệp
139, tìm danh sáchpython manage.py migrate
140 và thêm mục nhập sau, điều này đảm bảo dự án biết về ứng dụng để có thể xử lý việc tạo khuôn mẫupython manage.py migrate
15python manage.py migrate
Bên trong thư mục
36, tạo một thư mục có tên làpython manage.py migrate
142, sau đó tạo một thư mục con khác có tên làpython manage.py migrate
36 để khớp với tên ứng dụng [cấu trúc thư mục hai tầng này là quy ước điển hình của Django]python manage.py migrate
Trong thư mục
144, tạo một tệp tên làpython manage.py migrate
145 với nội dung bên dưới. Mẫu này chứa hai trình giữ chỗ cho các giá trị dữ liệu có tên là "tên" và "ngày", được phân định bằng các cặp dấu ngoặc nhọn,python manage.py migrate
146 vàpython manage.py migrate
147. Tất cả văn bản bất biến khác là một phần của mẫu, cùng với đánh dấu định dạng [chẳng hạn nhưpython manage.py migrate
148]. Như bạn có thể thấy, trình giữ chỗ mẫu cũng có thể bao gồm định dạng, biểu thức sau dấu ngoặc kép ký hiệupython manage.py migrate
149, trong trường hợp này là sử dụng bộ lọc ngày và bộ lọc thời gian tích hợp sẵn của Django. Sau đó, mã chỉ cần chuyển giá trị ngày giờ thay vì chuỗi được định dạng trướcpython manage.py migrate
16python manage.py migrate
Ở đầu
37, hãy thêm câu lệnh nhập saupython manage.py migrate
17python manage.py migrate
Also in
37, modify thepython manage.py migrate
116 function to usepython manage.py migrate
153 method to load a template and to provide the template context. Bối cảnh là tập hợp các biến để sử dụng trong mẫu. Hàmpython manage.py migrate
154 lấy đối tượng yêu cầu, theo sau là đường dẫn đến mẫu liên quan đến thư mụcpython manage.py migrate
142, sau đó là đối tượng bối cảnh. [Các nhà phát triển thường đặt tên cho các mẫu giống như các chức năng sử dụng chúng, nhưng không bắt buộc phải có tên phù hợp vì bạn luôn tham chiếu đến tên tệp chính xác trong mã của mình. ]python manage.py migrate
18python manage.py migrate
Bạn có thể thấy rằng mã bây giờ đơn giản hơn nhiều và chỉ liên quan đến các giá trị dữ liệu, vì tất cả đánh dấu và định dạng đều có trong mẫu
Khởi động chương trình [bên trong hoặc bên ngoài trình gỡ lỗi, sử dụng ⌃F5 [Windows, Linux . ]], navigate to a /hello/name URL, and observe the results.
Ngoài ra, hãy thử điều hướng đến URL /hello/name bằng cách sử dụng tên như
156 để xem Django tự động thoát tại nơi làm việc. Giá trị "tên" hiển thị dưới dạng văn bản thuần túy trong trình duyệt thay vì hiển thị một phần tử thực tếpython manage.py migrate
Phục vụ các tệp tĩnh
Tệp tĩnh là các phần nội dung mà ứng dụng web của bạn trả về nguyên trạng cho một số yêu cầu nhất định, chẳng hạn như tệp CSS. Cung cấp các tệp tĩnh yêu cầu danh sách
python manage.py migrate
140 trong python manage.py migrate
95 chứa python manage.py migrate
159, được bao gồm theo mặc địnhCung cấp các tệp tĩnh trong Django là một nghệ thuật, đặc biệt là khi triển khai vào sản xuất. Những gì được hiển thị ở đây là một cách tiếp cận đơn giản hoạt động với máy chủ phát triển Django và cả máy chủ sản xuất như Gunicorn. Tuy nhiên, việc xử lý đầy đủ các tệp tĩnh nằm ngoài phạm vi của hướng dẫn này, vì vậy để biết thêm thông tin, hãy xem Quản lý các tệp tĩnh trong tài liệu Django
Khi chuyển sang sản xuất, hãy điều hướng đến
python manage.py migrate
95, đặt python manage.py migrate
161 và thay đổi python manage.py migrate
162 để cho phép các máy chủ cụ thể. Điều này có thể dẫn đến công việc bổ sung khi sử dụng vùng chứa. Để biết chi tiết, xem Vấn đề 13Sẵn sàng ứng dụng cho các tệp tĩnh
Trong
51 của dự án, hãy thêm câu lệnhPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
164 saupython manage.py migrate
19python manage.py migrate
Trong cùng một tệp đó, hãy thêm dòng sau vào cuối, bao gồm các URL tệp tĩnh tiêu chuẩn vào danh sách mà dự án nhận ra
20python manage.py migrate
Tham khảo các tệp tĩnh trong một mẫu
Trong thư mục
36, tạo một thư mục có tên làpython manage.py migrate
166python manage.py migrate
Trong thư mục
166, tạo một thư mục con có tên làpython manage.py migrate
36, khớp với tên ứng dụngpython manage.py migrate
Lý do cho thư mục con bổ sung này là khi bạn triển khai dự án Django tới một máy chủ sản xuất, bạn thu thập tất cả các tệp tĩnh vào một thư mục duy nhất, sau đó được phục vụ bởi một máy chủ tệp tĩnh chuyên dụng. Thư mục con
169 đảm bảo rằng khi các tệp tĩnh của ứng dụng được thu thập, chúng sẽ nằm trong thư mục con dành riêng cho ứng dụng và sẽ không xung đột với tệp từ các ứng dụng khác trong cùng một dự ánpython manage.py migrate
Trong thư mục
169, tạo một tệp tên làpython manage.py migrate
171 với nội dung như sau. Sau khi nhập mã này, hãy quan sát phần đánh dấu cú pháp mà Mã VS cung cấp cho các tệp CSS, bao gồm bản xem trước màupython manage.py migrate
21python manage.py migrate
Trong
172, thêm các dòng sau vào sau phần tửpython manage.py migrate
173. Thẻpython manage.py migrate
174 là bộ thẻ mẫu Django tùy chỉnh, cho phép bạn sử dụngpython manage.py migrate
175 để chỉ một tệp như biểu định kiểupython manage.py migrate
22python manage.py migrate
Cũng trong
172, thay thế phần tử nội dungpython manage.py migrate
177 bằng đánh dấu sau sử dụng kiểupython manage.py migrate
178 thay vì thẻpython manage.py migrate
148python manage.py migrate
23python manage.py migrate
Chạy ứng dụng, điều hướng đến URL /hello/name và quan sát thấy thông báo hiển thị màu xanh lam. Dừng ứng dụng khi bạn hoàn tất
Sử dụng lệnh thu thập
Đối với triển khai sản xuất, bạn thường thu thập tất cả các tệp tĩnh từ ứng dụng của mình vào một thư mục bằng cách sử dụng lệnh
python manage.py migrate
180. Sau đó, bạn có thể sử dụng một máy chủ tệp tĩnh chuyên dụng để phục vụ các tệp đó, điều này thường dẫn đến hiệu suất tổng thể tốt hơn. Các bước sau đây cho biết cách bộ sưu tập này được tạo, mặc dù bạn không sử dụng bộ sưu tập khi chạy với máy chủ phát triển DjangoTrong
139, thêm dòng sau xác định vị trí nơi các tệp tĩnh được thu thập khi bạn sử dụng lệnhpython manage.py migrate
182python manage.py migrate
24python manage.py migrate
Trong Terminal, chạy lệnh
180 và quan sát rằngpython manage.py migrate
184 được sao chép vào thư mụcpython manage.py migrate
185 cấp cao nhất cùng vớipython manage.py migrate
90python manage.py migrate
Trong thực tế, hãy chạy
182 bất cứ khi nào bạn thay đổi các tệp tĩnh và trước khi triển khai vào sản xuấtpython manage.py migrate
Tạo nhiều mẫu mở rộng mẫu cơ sở
Bởi vì hầu hết các ứng dụng web có nhiều hơn một trang và vì những trang đó thường chia sẻ nhiều thành phần chung nên các nhà phát triển sẽ tách các thành phần chung đó thành một mẫu trang cơ sở mà sau đó các mẫu trang khác sẽ mở rộng. [Điều này còn được gọi là kế thừa mẫu, nghĩa là các trang mở rộng kế thừa các thành phần từ trang cơ sở. ]
Ngoài ra, vì bạn có thể sẽ tạo nhiều trang mở rộng cùng một mẫu nên sẽ hữu ích khi tạo một đoạn mã trong Mã VS để bạn có thể nhanh chóng khởi tạo các mẫu trang mới. Một đoạn mã giúp bạn tránh các thao tác sao chép-dán tẻ nhạt và dễ bị lỗi
Các phần sau đây đi qua các phần khác nhau của quá trình này
Tạo mẫu và kiểu trang cơ sở
Mẫu trang cơ sở trong Django chứa tất cả các phần được chia sẻ của một nhóm trang, bao gồm các tham chiếu đến tệp CSS, tệp tập lệnh, v.v. Các mẫu cơ sở cũng xác định một hoặc nhiều thẻ khối có nội dung mà các mẫu mở rộng dự kiến sẽ ghi đè. Thẻ khối được phân định bởi
python manage.py migrate
188 và python manage.py migrate
189 trong cả mẫu cơ sở và mẫu mở rộngCác bước sau minh họa việc tạo mẫu cơ sở
Trong thư mục
144, tạo một tệp có tênpython manage.py migrate
191 với nội dung bên dưới, chứa các khối có tên "tiêu đề" và "nội dung". Như bạn có thể thấy, đánh dấu xác định cấu trúc thanh điều hướng đơn giản với các liên kết đến Trang chủ, Giới thiệu và Liên hệ mà bạn tạo trong phần sau. Lưu ý việc sử dụng thẻpython manage.py migrate
192 của Django để tham chiếu đến các trang khác thông qua tên của các mẫu URL tương ứng thay vì theo đường dẫn tương đốipython manage.py migrate
25python manage.py migrate
Thêm các kiểu sau vào
193 bên dưới kiểu "thông báo" hiện có và lưu tệp. [Hướng dẫn này không cố gắng chứng minh thiết kế đáp ứng; những phong cách này chỉ tạo ra một kết quả khá thú vị. ]python manage.py migrate
26python manage.py migrate
Bạn có thể chạy ứng dụng tại thời điểm này, nhưng vì bạn chưa sử dụng mẫu cơ sở ở bất kỳ đâu và chưa thay đổi bất kỳ tệp mã nào nên kết quả vẫn giống như bước trước. Hoàn thành các phần còn lại để xem hiệu ứng cuối cùng
Tạo một đoạn mã
Vì ba trang bạn tạo trong phần tiếp theo mở rộng từ
python manage.py migrate
191 nên sẽ tiết kiệm thời gian tạo đoạn mã để khởi tạo tệp mẫu mới với tham chiếu thích hợp đến mẫu cơ sở. Một đoạn mã cung cấp một đoạn mã nhất quán từ một nguồn duy nhất, giúp tránh các lỗi có thể phát sinh khi sử dụng sao chép-dán từ mã hiện cóTrong Mã VS, chọn menu Tệp [Windows/Linux] hoặc Mã [macOS], sau đó chọn Tùy chọn > Đoạn mã người dùng
Trong danh sách hiện ra, chọn html. [Tùy chọn có thể xuất hiện dưới dạng "html. json" trong phần Đoạn mã hiện có của danh sách nếu bạn đã tạo đoạn mã trước đó. ]
Sau khi mã VS mở
195, hãy thêm mã bên dưới vào trong dấu ngoặc nhọn hiện có. [Các nhận xét giải thích, không được hiển thị ở đây, mô tả các chi tiết như cách dòngpython manage.py migrate
196 cho biết vị trí Mã VS đặt con trỏ sau khi chèn đoạn mã]python manage.py migrate
27python manage.py migrate
Lưu tệp
195 [ ⌘S [Windows, Linux Ctrl+S]].python manage.py migrate
Bây giờ, bất cứ khi nào bạn bắt đầu nhập tiền tố của đoạn mã, chẳng hạn như
198, Mã VS cung cấp đoạn mã dưới dạng tùy chọn tự động hoàn thành, như được hiển thị trong phần tiếp theo. You can also use the Insert Snippet command to choose a snippet from a menupython manage.py migrate
For more information on code snippets in general, refer to Creating snippets
Use the code snippet to add pages
With the code snippet in place, you can quickly create templates for the Home, About, and Contact pages
Trong thư mục
144, tạo một tệp mới có tên làpython manage.py migrate
200, sau đó bắt đầu nhậppython manage.py migrate
198 để xem đoạn trích xuất hiện dưới dạng hoàn thànhpython manage.py migrate
Khi bạn chọn phần hoàn thành, mã của đoạn mã sẽ xuất hiện cùng với con trỏ trên điểm chèn của đoạn mã
Tại điểm chèn trong khối "tiêu đề", viết
202 và trong khối "nội dung", viếtpython manage.py migrate
203, sau đó lưu tệp. Những dòng này là những phần duy nhất của mẫu trang mở rộngpython manage.py migrate
Trong thư mục
144, tạopython manage.py migrate
205, sử dụng đoạn mã để chèn đánh dấu soạn sẵn, lần lượt chènpython manage.py migrate
206 vàpython manage.py migrate
207 vào khối "tiêu đề" và "nội dung", sau đó lưu tệppython manage.py migrate
Repeat the previous step to create
208 usingpython manage.py migrate
209 andpython manage.py migrate
210python manage.py migrate
In the app's
96, add routes for the /about and /contact pages. Be mindful that thepython manage.py migrate
117 argument to thepython manage.py migrate
8 function defines the name with which you refer to the page in thepython manage.py migrate
192 tags in the templatespython manage.py migrate
28python manage.py migrate
In
37, add functions for the /about and /contact routes that refer to their respective page templates. Also modify thepython manage.py migrate
134 function to use thepython manage.py migrate
200 templatepython manage.py migrate
29python manage.py migrate
Run the app
With all the page templates in place, save
python manage.py migrate
37, run the app, and open a browser to the home page to see the results. Navigate between the pages to verify that the page templates are properly extending the base templateWork with data, data models, and migrations
Many web apps work with information stored in a database, and Django makes it easy to represent the objects in that database using models. In Django, a model is a Python class, derived from
python manage.py migrate
219, that represents a specific database object, typically a table. You place these classes in an app's python manage.py migrate
38 fileWith Django, you work with your database almost exclusively through the models you define in code. Sau đó, "di chuyển" của Django sẽ tự động xử lý tất cả các chi tiết của cơ sở dữ liệu cơ bản khi bạn phát triển các mô hình theo thời gian. The general workflow is as follows
- Make changes to the models in your
38 filepython manage.py migrate
- Run
222 to generate scripts in thepython manage.py migrate
39 folder that migrate the database from its current state to the new statepython manage.py migrate
- Chạy
224 để áp dụng tập lệnh vào cơ sở dữ liệu thực tếpython manage.py migrate
Tập lệnh di chuyển ghi lại một cách hiệu quả tất cả các thay đổi gia tăng mà bạn thực hiện đối với mô hình dữ liệu của mình theo thời gian. Bằng cách áp dụng di chuyển, Django cập nhật cơ sở dữ liệu để phù hợp với mô hình của bạn. Vì mỗi thay đổi gia tăng có tập lệnh riêng nên Django có thể tự động di chuyển bất kỳ phiên bản trước đó của cơ sở dữ liệu [bao gồm cả cơ sở dữ liệu mới] sang phiên bản hiện tại. Do đó, bạn chỉ cần quan tâm đến các mô hình của mình trong
python manage.py migrate
38, không bao giờ quan tâm đến lược đồ cơ sở dữ liệu cơ bản hoặc các tập lệnh di chuyển. Bạn để Django làm phần đóTrong mã cũng vậy, bạn chỉ làm việc với các lớp mô hình của mình để lưu trữ và truy xuất dữ liệu; . The one exception is that you can write data into your database using the Django administrative utility loaddata command. This utility is often used to initialize a data set after the
python manage.py migrate
226 command has initialized the schemaWhen using the
python manage.py migrate
98 file, you can also work directly with the database using a tool like the SQLite browser. Bạn có thể thêm hoặc xóa các bản ghi trong bảng bằng công cụ như vậy, nhưng tránh thực hiện các thay đổi đối với lược đồ cơ sở dữ liệu vì khi đó cơ sở dữ liệu sẽ không đồng bộ với các mô hình ứng dụng của bạn. Thay vào đó, hãy thay đổi mô hình, chạy python manage.py migrate
228, sau đó chạy python manage.py migrate
226Types of databases
By default, Django includes a
python manage.py migrate
98 file for an app's database that's suitable for development work. Như được mô tả trên Khi nào nên sử dụng SQLite [sqlite. org], SQLite hoạt động tốt đối với các trang web có lưu lượng truy cập thấp đến trung bình với ít hơn 100 nghìn lần truy cập/ngày, nhưng không được khuyến nghị cho khối lượng lớn hơn. Nó cũng bị giới hạn trong một máy tính, vì vậy nó không thể được sử dụng trong bất kỳ trường hợp nhiều máy chủ nào như cân bằng tải và sao chép địa lýVì những lý do này, hãy cân nhắc sử dụng kho lưu trữ dữ liệu cấp sản xuất như PostgreSQL, MySQL và SQL Server. Để biết thông tin về hỗ trợ của Django cho các cơ sở dữ liệu khác, hãy xem Thiết lập cơ sở dữ liệu. Bạn cũng có thể sử dụng Azure SDK cho Python để hoạt động với các dịch vụ lưu trữ Azure như bảng và đốm màu
xác định mô hình
Một mô hình Django lại là một lớp Python bắt nguồn từ
python manage.py migrate
231, mà bạn đặt trong tệp python manage.py migrate
38 của ứng dụng. Trong cơ sở dữ liệu, mỗi mô hình sẽ tự động được cung cấp một trường ID duy nhất có tên là python manage.py migrate
233. Tất cả các trường khác được định nghĩa là thuộc tính của lớp bằng cách sử dụng các loại từ python manage.py migrate
234, chẳng hạn như python manage.py migrate
235 [văn bản giới hạn], python manage.py migrate
236 [văn bản không giới hạn], python manage.py migrate
237, python manage.py migrate
238, python manage.py migrate
239, python manage.py migrate
240, python manage.py migrate
241. python manage.py migrate
242, python manage.py migrate
243 và python manage.py migrate
244, trong số những người khác. [Xem tham chiếu trường Mô hình trong tài liệu Django để biết chi tiết. ]Mỗi trường có một số thuộc tính, như
python manage.py migrate
245. Thuộc tính python manage.py migrate
246 có nghĩa là trường này là tùy chọn; . Ngoài ra còn có một thuộc tính python manage.py migrate
248 giới hạn các giá trị thành các giá trị trong một mảng các bộ giá trị dữ liệu/giá trị hiển thịVí dụ: thêm lớp sau vào
python manage.py migrate
38 để xác định mô hình dữ liệu đại diện cho các mục nhập ngày tháng trong nhật ký tin nhắn đơn giảnpython manage.py migrate
60Một lớp mô hình có thể bao gồm các phương thức trả về các giá trị được tính từ các thuộc tính của lớp khác. Các mô hình thường bao gồm một phương thức
python manage.py migrate
250 trả về một biểu diễn chuỗi của thể hiệnDi chuyển cơ sở dữ liệu
Vì bạn đã thay đổi mô hình dữ liệu của mình bằng cách chỉnh sửa
python manage.py migrate
38 nên bạn cần tự cập nhật cơ sở dữ liệu. Trong Mã VS, mở Terminal với môi trường ảo được kích hoạt [sử dụng Terminal. Tạo lệnh Terminal mới, ⌃⇧` [Windows, Linux Ctrl+Shift+`]]], navigate to the project folder, and run the following commands:python manage.py migrate
61Hãy xem trong thư mục
python manage.py migrate
39 để xem các tập lệnh mà python manage.py migrate
228 tạo ra. Bạn cũng có thể xem chính cơ sở dữ liệu để biết rằng lược đồ đã được cập nhậtNếu bạn gặp lỗi khi chạy các lệnh, hãy đảm bảo rằng bạn không sử dụng thiết bị đầu cuối gỡ lỗi còn sót lại từ các bước trước, vì chúng có thể chưa kích hoạt môi trường ảo
Sử dụng cơ sở dữ liệu thông qua các mô hình
Với các mô hình của bạn tại chỗ và cơ sở dữ liệu đã được di chuyển, bạn có thể lưu trữ và truy xuất dữ liệu chỉ bằng các mô hình của mình. Trong phần này, bạn thêm một trang biểu mẫu vào ứng dụng mà qua đó bạn có thể ghi một tin nhắn. Sau đó, bạn sửa đổi trang chủ để hiển thị các thông báo đó. Vì bạn sửa đổi nhiều tệp mã ở đây, hãy chú ý đến các chi tiết
Trong thư mục
36 [nơi bạn cópython manage.py migrate
37], hãy tạo một tệp mới có tên làpython manage.py migrate
256 với mã sau, định nghĩa một biểu mẫu Django có chứa một trường được lấy từ mô hình dữ liệu,python manage.py migrate
257python manage.py migrate
62python manage.py migrate
Trong thư mục
144, tạo một mẫu mới có tên làpython manage.py migrate
259 với các nội dung sau, giả sử rằng mẫu được cung cấp một biến có tên làpython manage.py migrate
260 để xác định phần thân của biểu mẫu. Sau đó, nó thêm một nút gửi có nhãn "Nhật ký"python manage.py migrate
63python manage.py migrate
Ghi chú. Thẻ
261 của Django cung cấp khả năng bảo vệ khỏi các hành vi giả mạo yêu cầu trên nhiều trang web. Xem Bảo vệ giả mạo yêu cầu trang web chéo trong tài liệu Django để biết chi tiếtpython manage.py migrate
Trong tệp
193 của ứng dụng, hãy thêm quy tắc để làm cho biểu mẫu nhập liệu rộng hơnpython manage.py migrate
64python manage.py migrate
Trong tệp
96 của ứng dụng, hãy thêm tuyến đường cho trang mớipython manage.py migrate
65python manage.py migrate
Trong
37, xác định chế độ xem có tênpython manage.py migrate
265 [được gọi bằng tuyến URL]. Chế độ xem này xử lý cả hai trường hợp HTTP GET và POST. Trong trường hợp GET [phầnpython manage.py migrate
266], nó chỉ hiển thị biểu mẫu mà bạn đã xác định trong các bước trước. Trong trường hợp POST, nó truy xuất dữ liệu từ biểu mẫu vào một đối tượng dữ liệu [python manage.py migrate
178], đặt dấu thời gian, sau đó lưu đối tượng đó tại thời điểm nó được ghi vào cơ sở dữ liệupython manage.py migrate
66python manage.py migrate
Một bước nữa trước khi bạn sẵn sàng thử mọi thứ. Trong
268, thêm một liên kết trong div "navbar" cho trang ghi nhật ký tin nhắnpython manage.py migrate
67python manage.py migrate
Chạy ứng dụng và mở trình duyệt đến trang chủ. Chọn liên kết Thông báo nhật ký trên thanh điều hướng, liên kết này sẽ hiển thị trang nhật ký thông báo
Nhập tin nhắn, chọn Nhật ký và bạn sẽ được đưa trở lại trang chủ. Trang chủ chưa hiển thị bất kỳ thông báo đã ghi nào [mà bạn sẽ khắc phục trong giây lát]. Vui lòng đăng nhập thêm một vài tin nhắn nữa. Nếu bạn muốn, hãy xem qua cơ sở dữ liệu bằng công cụ như Trình duyệt SQLite để xem các bản ghi đã được tạo. Mở cơ sở dữ liệu dưới dạng chỉ đọc hoặc nếu không, hãy nhớ đóng cơ sở dữ liệu trước khi sử dụng ứng dụng, nếu không ứng dụng sẽ bị lỗi do cơ sở dữ liệu bị khóa
Dừng ứng dụng khi bạn hoàn tất
Bây giờ hãy sửa đổi trang chủ để hiển thị các thông báo đã ghi. Bắt đầu bằng cách thay thế nội dung của tệp
269 của ứng dụng bằng đánh dấu bên dưới. Mẫu này mong đợi một biến ngữ cảnh có tên làpython manage.py migrate
270. Nếu nó nhận được một [được kiểm tra bằng thẻpython manage.py migrate
271], thì nó sẽ lặp lại danh sách đó [thẻpython manage.py migrate
272] để tạo các hàng trong bảng cho mỗi thông báo. Mặt khác, trang chỉ ra rằng không có tin nhắn nào được ghi lạipython manage.py migrate
68python manage.py migrate
Trong
193, thêm một quy tắc để định dạng bảng một chútpython manage.py migrate
69python manage.py migrate
Trong
37, nhập lớppython manage.py migrate
275 chung của Django, mà chúng tôi sẽ sử dụng để triển khai trang chủpython manage.py migrate
0python manage.py migrate
Cũng trong
37, thay thế hàmpython manage.py migrate
134 bằng một lớp có tênpython manage.py migrate
278, bắt nguồn từpython manage.py migrate
275, lớp này liên kết chính nó với mô hìnhpython manage.py migrate
257 và triển khai hàmpython manage.py migrate
281 để tạo ngữ cảnh cho mẫupython manage.py migrate
1python manage.py migrate
Trong
96 của ứng dụng, hãy nhập mô hình dữ liệupython manage.py migrate
2python manage.py migrate
Cũng trong
96, hãy tạo một biến cho dạng xem mới, biến này truy xuất năm đối tượngpython manage.py migrate
257 gần đây nhất theo thứ tự giảm dần [nghĩa là nó truy vấn cơ sở dữ liệu], sau đó cung cấp tên cho dữ liệu trong ngữ cảnh mẫu [python manage.py migrate
270] và xác địnhpython manage.py migrate
3python manage.py migrate
Trong
96, sửa đổi đường dẫn đến trang chủ để sử dụng biếnpython manage.py migrate
287python manage.py migrate
4python manage.py migrate
Khởi động ứng dụng và mở trình duyệt đến trang chủ, lúc này sẽ hiển thị thông báo
Dừng ứng dụng khi bạn hoàn tất
Sử dụng trình gỡ lỗi với các mẫu trang
Như đã trình bày trong phần trước, các mẫu trang có thể chứa các chỉ thị thủ tục như
python manage.py migrate
272 và python manage.py migrate
271, thay vì chỉ các phần tử khai báo, thụ động như python manage.py migrate
192 và python manage.py migrate
291. Do đó, bạn có thể gặp lỗi lập trình bên trong các mẫu như với bất kỳ mã thủ tục nào khácMay mắn thay, Tiện ích mở rộng Python cho Mã VS cung cấp tính năng gỡ lỗi mẫu khi bạn có
python manage.py migrate
106 trong cấu hình gỡ lỗi [như bạn đã làm]. Các bước sau thể hiện khả năng nàyTrong
269, đặt các điểm ngắt trên cả hai dòngpython manage.py migrate
271 vàpython manage.py migrate
272, như được biểu thị bằng các mũi tên màu vàng trong hình ảnh bên dướipython manage.py migrate
Chạy ứng dụng trong trình gỡ lỗi và mở trình duyệt đến trang chủ. [Nếu bạn đang chạy trình gỡ lỗi, bạn không phải khởi động lại ứng dụng sau khi đặt điểm ngắt; chỉ cần làm mới trang. ] Quan sát rằng Mã VS đột nhập vào trình gỡ lỗi trong mẫu trên câu lệnh
296 và hiển thị tất cả các biến ngữ cảnh trong khung Biếnpython manage.py migrate
Sử dụng lệnh Step Over [ F10 ] để duyệt qua mã mẫu. Quan sát xem trình gỡ lỗi có bước qua tất cả các câu lệnh khai báo và tạm dừng ở bất kỳ mã thủ tục nào không. Ví dụ: bước qua các vòng lặp
272 cho phép bạn kiểm tra từng giá trị trongpython manage.py migrate
178 và cho phép bạn chuyển đến các dòng nhưpython manage.py migrate
299.python manage.py migrate
Bạn cũng có thể làm việc với các biến trong bảng Debug Console. [Tuy nhiên, các bộ lọc Django như
600 hiện không khả dụng trong bảng điều khiển. ]python manage.py migrate
Khi bạn đã sẵn sàng, hãy chọn Tiếp tục [ F5 ] để hoàn tất việc chạy ứng dụng và xem trang được hiển thị trong trình duyệt. Dừng trình gỡ lỗi khi bạn hoàn tất.
Hoạt động tùy chọn
Các phần sau đây mô tả các bước bổ sung mà bạn có thể thấy hữu ích khi làm việc với Python và Visual Studio Code
Tạo một yêu cầu. txt cho môi trường
Khi bạn chia sẻ mã ứng dụng của mình thông qua kiểm soát nguồn hoặc một số phương tiện khác, việc sao chép tất cả các tệp trong môi trường ảo sẽ không hợp lý vì người nhận luôn có thể tự tạo lại môi trường đó
Theo đó, các nhà phát triển thường bỏ qua thư mục môi trường ảo khỏi kiểm soát nguồn và thay vào đó mô tả các phần phụ thuộc của ứng dụng bằng tệp
python manage.py migrate
601Mặc dù bạn có thể tạo tệp bằng tay, nhưng bạn cũng có thể sử dụng lệnh
python manage.py migrate
602 để tạo tệp dựa trên các thư viện chính xác được cài đặt trong môi trường được kích hoạtVới môi trường đã chọn của bạn được chọn bằng Python. Chọn lệnh Thông dịch viên, chạy Terminal. Tạo lệnh Terminal mới [ ⌃⇧` [Windows, Linux Ctrl+Shift+`]]] to open a terminal with that environment activated.
Trong thiết bị đầu cuối, hãy chạy
603 để tạo tệppython manage.py migrate
601 trong thư mục dự án của bạnpython manage.py migrate
Bất kỳ ai [hoặc bất kỳ máy chủ bản dựng nào] nhận được bản sao của dự án chỉ cần chạy lệnh
python manage.py migrate
605 để cài đặt lại các gói mà ứng dụng phụ thuộc vào trong môi trường hoạt độngGhi chú.
602 liệt kê tất cả các gói Python bạn đã cài đặt trong môi trường hiện tại, bao gồm các gói bạn hiện không sử dụng. Lệnh này cũng liệt kê các gói có số phiên bản chính xác mà bạn có thể muốn chuyển đổi thành các phạm vi để linh hoạt hơn trong tương lai. Để biết thêm thông tin, hãy xem Tệp yêu cầu trong tài liệu lệnh pippython manage.py migrate
Tạo một siêu người dùng và kích hoạt giao diện quản trị
Theo mặc định, Django cung cấp giao diện quản trị cho ứng dụng web được bảo vệ bằng xác thực. Giao diện được triển khai thông qua ứng dụng
python manage.py migrate
607 tích hợp, được bao gồm theo mặc định trong danh sách python manage.py migrate
140 của dự án [python manage.py migrate
95] và việc xác thực được xử lý bằng ứng dụng python manage.py migrate
610 tích hợp, cũng nằm trong danh sách python manage.py migrate
140 theo mặc địnhThực hiện các bước sau để kích hoạt giao diện quản trị
Tạo tài khoản siêu người dùng trong ứng dụng bằng cách mở Terminal trong Mã VS cho môi trường ảo của bạn, sau đó chạy lệnh
612, thay thếpython manage.py migrate
613 vàpython manage.py migrate
614, tất nhiên, bằng thông tin cá nhân của bạn. Khi bạn chạy lệnh, Django sẽ nhắc bạn nhập và xác nhận mật khẩu của bạnpython manage.py migrate
Hãy nhớ nhớ kết hợp tên người dùng và mật khẩu của bạn. Đây là những thông tin đăng nhập bạn sử dụng để xác thực với ứng dụng
Thêm tuyến URL sau vào cấp dự án
96 [python manage.py migrate
51 trong hướng dẫn này] để trỏ đến giao diện quản trị tích hợpPerforming system checks... System check identified no issues [0 silenced]. January 15, 2021 - 14:33:31 Django version 3.1.5, using settings 'web_project.settings' Starting development server at //127.0.0.1:8000/ Quit the server with CTRL-BREAK.
5python manage.py migrate
Chạy máy chủ, sau đó mở trình duyệt đến trang /quản trị viên của ứng dụng [chẳng hạn như
617 khi sử dụng máy chủ phát triển]python manage.py migrate
Một trang đăng nhập xuất hiện, lịch sự của
610. Nhập thông tin đăng nhập siêu người dùng của bạnpython manage.py migrate
Sau khi được xác thực, bạn sẽ thấy trang quản trị mặc định, qua đó bạn có thể quản lý người dùng và nhóm
Bạn có thể tùy chỉnh giao diện quản trị bao nhiêu tùy thích. Ví dụ: bạn có thể cung cấp khả năng chỉnh sửa và xóa các mục nhập trong cơ sở dữ liệu. Để biết thêm thông tin về cách thực hiện các tùy chỉnh, hãy tham khảo tài liệu trang quản trị Django
Tạo vùng chứa cho ứng dụng Django bằng tiện ích mở rộng Docker
Tiện ích mở rộng Docker giúp dễ dàng xây dựng, quản lý và triển khai các ứng dụng được chứa trong Visual Studio Code. Nếu bạn quan tâm đến việc tìm hiểu cách tạo vùng chứa Python cho ứng dụng Django được phát triển trong hướng dẫn này, hãy xem hướng dẫn Python trong vùng chứa, hướng dẫn này sẽ hướng dẫn bạn cách tạo
- Tạo một tệp
619 mô tả một vùng chứa Python đơn giảnpython manage.py migrate
- Xây dựng, chạy và xác minh chức năng của ứng dụng Django
- Gỡ lỗi ứng dụng đang chạy trong vùng chứa
Bước tiếp theo
Chúc mừng bạn đã hoàn thành hướng dẫn làm việc với Django trong Visual Studio Code này
Dự án mã đã hoàn thành từ hướng dẫn này có thể được tìm thấy trên GitHub. python-sample-vscode-django-tutorial
Trong hướng dẫn này, chúng tôi mới chỉ vạch ra bề nổi của mọi thứ mà Django có thể làm. Hãy nhớ truy cập tài liệu Django và hướng dẫn Django chính thức để biết thêm chi tiết về chế độ xem, mẫu, mô hình dữ liệu, định tuyến URL, giao diện quản trị, sử dụng các loại cơ sở dữ liệu khác, triển khai vào sản xuất, v.v.
Để dùng thử ứng dụng của bạn trên trang web sản xuất, hãy xem hướng dẫn Triển khai ứng dụng Python vào Dịch vụ ứng dụng Azure bằng Docker Container. Azure cũng cung cấp một bộ chứa tiêu chuẩn, Dịch vụ ứng dụng trên Linux, nơi bạn triển khai các ứng dụng web từ bên trong Mã VS