Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menyajikan Langkah 4 dalam seri tutorial Bekerja dengan kerangka kerja web Django di Visual Studio.
Langkah-langkah sebelumnya dalam seri tutorial ini membuat solusi Visual Studio dan proyek Django untuk dua aplikasi. BasicProject adalah aplikasi minimal berdasarkan templat Proyek Web Django Kosong dan HelloDjangoApp menggunakan templat Aplikasi Django 1.9 untuk menyajikan file statis dengan tampilan halaman dari templat HTML.
Di Langkah 4, Anda menambahkan aplikasi Django ketiga ke solusi berdasarkan templat Django Web Project lengkap. Templat ini membantu Anda membuat aplikasi Django yang lebih lengkap dengan tiga halaman yang mewarisi dari templat halaman dasar. Aplikasi ini menggunakan pustaka JavaScript statis seperti jQuery dan Bootstrap. Kemampuan autentikasi templat dijelaskan dalam Langkah terakhir dalam seri tutorial.
Di Langkah 4 tutorial, Anda mempelajari cara:
- Membuat aplikasi web Django yang lebih lengkap dengan menggunakan templat Proyek Web Django
- Tinjau struktur proyek Django yang disediakan oleh templat
- Menjelajahi tampilan dan templat halaman yang dibuat oleh templat proyek
- Memeriksa perutean URL yang disediakan oleh templat
Prasyarat
Solusi Visual Studio dibuat di Langkah 1: Membuat proyek dan solusi Visual Studio, yang menggunakan Template Kosong Proyek Web Django.
Tinjau bagian Prasyarat di Langkah 1 dari seri tutorial ini untuk detail tentang versi templat Django, proyek Visual Studio versus proyek Django, dan pengembangan Python di Mac.
(Opsional) Tinjau instruksi di Langkah-langkah sebelumnya untuk alur kerja Django end-to-end di Visual Studio:
Membuat proyek dari templat
Ikuti langkah-langkah ini untuk membuat aplikasi web Django dari templat Django Web Project lengkap:
Di Visual Studio, buka Penjelajah Solusi, klik kanan solusi LearningDjango, dan pilih Tambahkan>Proyek Baru.
Nota
Langkah 1 dari seri tutorial membuat solusi LearningDjango Visual Studio untuk berisi semua proyek Django yang dijelaskan dalam seri ini. Dengan menjaga semua proyek Django Anda dalam solusi yang sama, Anda dapat dengan mudah beralih bolak-balik antara file yang berbeda untuk perbandingan.
Jika Anda lebih suka menggunakan solusi Visual Studio terpisah untuk proyek Django dalam langkah tutorial ini, pilih File>Proyek>Baru sebagai gantinya.
Dalam dialog Tambah proyek baru, cari "Django," pilih templat Django Web Project, dan pilih Berikutnya.
Konfigurasikan proyek baru Anda:
Atur Nama proyek ke DjangoWeb.
Tentukan Lokasi untuk Visual Studio guna menyimpan proyek. (Defaultnya adalah lokasi saat ini untuk solusi dan proyek Django yang ada.)
Pilih Buat.
Membuat lingkungan virtual
Setelah Visual Studio memulai pembuatan proyek, Anda akan melihat perintah pesan file spesifikasi paket Python "requirements.txt" terdeteksi dalam proyek "DjangoWeb".:
Pesan menunjukkan bahwa templat yang dipilih menyertakan file requirements.txt yang dapat Anda gunakan untuk membuat lingkungan virtual untuk proyek.
Penting
Jika Anda tidak melihat permintaan pesan, Anda mungkin mengalami kesalahan saat mencoba membuat pengguna super Django di bagian berikutnya.
Konfirmasikan Visual Studio mengenali file requirements.txt untuk proyek. Di penjelajah Solusi, perluas folder proyek DjangoWeb, dan buka file requirements.txt. Visual Studio harus menampilkan perintah pesan seperti yang diharapkan.
Ikuti langkah-langkah berikut untuk menyiapkan lingkungan virtual:
Pada prompt pesan, pilih tautan untuk memasang atau membuat lingkungan virtual .
Dalam dialog Tambahkan Lingkungan Virtual, pilih Buat untuk menerima default.
Membuat pengguna super Django
Setelah Visual Studio membuat proyek DjangoWeb, proyek readme.html file terbuka. File ini mencakup instruksi untuk membuat pengguna super Django (yaitu administrator) untuk proyek.
Ikuti langkah-langkah berikut untuk membuat pengguna super Django:
Di Solution Explorer, klik kanan proyek DjangoWeb, pilih Python, lalu pilih Django Create Superuser:
Pada perintah, masukkan detail akun untuk proyek, termasuk nama pengguna, kata sandi, dan alamat email.
Anda tidak perlu menggunakan kredensial keamanan untuk akun yang sudah ada. Anda dapat membuat nama pengguna dan kata sandi baru untuk digunakan secara khusus dengan aplikasi web Django.
Rekam kredensial untuk digunakan nanti. Anda memerlukan kredensial untuk menjalankan fitur autentikasi aplikasi web.
Menjalankan proyek web Django
Sekarang Anda siap untuk menjalankan aplikasi web Django dan melihat fitur yang disediakan oleh templat:
Di Penjelajah Solusi, klik kanan proyek DjangoWeb, dan pilih Atur sebagai Proyek Startup.
Perintah ini menetapkan proyek yang dipilih sebagai proyek startup default untuk solusi Visual Studio. Saat Anda memulai Debugger, Visual Studio menjalankan kode untuk proyek startup. Di Penjelajah Solusi, nama proyek startup untuk solusi ditampilkan dalam huruf tebal:
Pilih Debug>Mulai Debugging (F5) atau gunakan tombol Server Web pada toolbar untuk menjalankan server:
Menjelajahi halaman aplikasi web
Aplikasi yang dibuat oleh templat memiliki tiga halaman: "Beranda," "Tentang," dan "Kontak." Ada tautan untuk setiap halaman pada bilah navigasi.
Coba beralih antar halaman dengan menggunakan opsi pada bilah navigasi.
Periksa berbagai bagian aplikasi yang sedang berjalan, termasuk konten halaman. Perhatikan bagaimana rute alamat URL berubah berdasarkan halaman saat ini.
Autentikasi dengan aplikasi dengan memilih opsi Masuk pada bilah navigasi. Masukkan info masuk pengguna super yang Anda berikan di bagian sebelumnya.
Aplikasi yang dibuat oleh templat Django Web Project menggunakan Bootstrap untuk tata letak responsif yang mengakomodasi perangkat seluler. Untuk melihat responsivitas ini, ubah ukuran browser ke tampilan sempit sehingga konten dirender secara vertikal, dan bilah navigasi berubah menjadi ikon menu:
Anda dapat membiarkan aplikasi berjalan untuk latihan di bagian berikutnya.
Jika Anda ingin menyimpan pekerjaan Anda, hentikan aplikasi dan ikuti instruksi di Langkah-langkah sebelumnya dalam seri tutorial ini:
- Langkah 1 (kecualikan file lingkungan virtual dari kontrol sumber)
- Langkah 2 (terapkan perubahan pada kontrol sumber)
Memeriksa struktur proyek aplikasi web
Templat Django Web Project membuat proyek aplikasi web di Visual Studio dengan struktur berikut:
File di akar proyek Visual Studio pada DjangoWeb:
- manage.py: Utilitas administratif Django.
- db.sqlite3: Database bawaan SQLite.
- requirements.txt: Mengidentifikasi paket dalam proyek yang memiliki dependensi pada Django 1.x.
- readme.html: Berisi informasi tentang aplikasi web, termasuk persyaratan dan prosedur penggunaan penting. Visual Studio menampilkan file ini setelah pembuatan proyek. Seperti yang dijelaskan sebelumnya, file ini memiliki instruksi untuk membuat akun pengguna super (administrator) untuk aplikasi.
Folder DjangoWeb/app:
Folder ini berisi semua file aplikasi, termasuk tampilan , model , pengujian, formulir . Folder ini juga memiliki subfolder dengan file, termasuk templat , migrasi, dan statis . Anda biasanya mengganti nama folder aplikasi untuk menggunakan nama yang lebih khas seperti nama aplikasi itu sendiri.
Folder DjangoWeb/DjangoWeb:
Folder ini adalah folder proyek Django. Ini berisi file proyek Django yang khas: __init__.py, settings.py, urls.py, dan wsgi.py. File settings.py sudah dikonfigurasi untuk aplikasi dan file database dengan menggunakan templat proyek. File urls.py juga sudah disiapkan dengan rute ke semua halaman aplikasi, termasuk formulir Masuk.
Berbagi lingkungan virtual antara proyek Visual Studio
Anda dapat berbagi lingkungan virtual antara proyek Visual Studio. Namun, perlu diingat bahwa proyek yang berbeda kemungkinan menggunakan paket yang berbeda dari waktu ke waktu. Lingkungan virtual bersama harus berisi semua paket untuk semua proyek yang menggunakannya.
Untuk menggunakan lingkungan virtual yang ada, ikuti langkah-langkah berikut:
Ketika diminta untuk menginstal dependensi di Visual Studio, pilih saya akan menginstalnya sendiri opsi.
Di Solution Explorer, klik kanan node Python Environments dan pilih Tambahkan Lingkungan Virtual yang Ada.
Navigasi ke dan pilih folder yang berisi lingkungan virtual, lalu pilih OK.
Memeriksa tampilan dan templat halaman
Kode untuk tampilan halaman yang dibuat oleh Django Web Project terletak di file proyek app/views.py. Setiap fungsi tampilan memanggil fungsi pembantu django.shortcuts.render
dengan jalur ke templat dan objek kamus sederhana. Fungsi about
membuat tampilan untuk halaman "Tentang" di aplikasi web:
def about(request):
"""Renders the about page."""
assert isinstance(request, HttpRequest)
return render(
request,
'app/about.html',
{
'title':'About',
'message':'Your application description page.',
'year':datetime.now().year,
}
)
Template halaman HTML untuk tampilan terletak di folder proyek app/templates/app (yang biasanya Anda beri nama ulang). Templat dasar, layout.html, adalah yang paling luas. File mengacu pada semua file statis yang diperlukan (JavaScript dan CSS) untuk tampilan aplikasi.
Templat ini juga menentukan dua bagian block
: content
dan scripts
. Halaman aplikasi web lainnya mengambil alih bagian {% block content %}
dalam file layout.html. Anda dapat melihat dua bagian block
dalam elemen <body>
dalam versi anotasi file layout.html ini:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!-- Define viewport for Bootstrap's responsive rendering -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }} - My Django Application</title>
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'app/content/bootstrap.min.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'app/content/site.css' %}" />
<script src="{% static 'app/scripts/modernizr-2.6.2.js' %}"></script>
</head>
<body>
<!-- Navigation bar section omitted in this excerpt -->
<div class="container body-content">
<!-- Content block - App pages override this block -->
{% block content %}
{% endblock %}
<!-- App header and footer content -->
<hr/>
<footer>
<p>© {{ year }} - My Django Application</p>
</footer>
</div>
<script src="{% static 'app/scripts/jquery-1.10.2.js' %}"></script>
<script src="{% static 'app/scripts/bootstrap.js' %}"></script>
<script src="{% static 'app/scripts/respond.js' %}"></script>
<!-- Scripts block - List page-specific scripts in this block -->
{% block scripts %}
{% endblock %}
</body>
</html>
Templat halaman HTML individual, about.html, contact.html, dan index.html, masing-masing memperluas templat dasar layout.html. File templat about.html adalah yang paling sederhana dan memperlihatkan tag {% extends %}
dan bagian {% block content %}
:
{% extends "app/layout.html" %}
<!-- Content block overrides "content" block in layout template -->
{% block content %}
<h2>{{ title }}.</h2>
<h3>{{ message }}</h3>
<p>Use this area to provide additional information.</p>
{% endblock %}
File templat index.html dan contact.html menggunakan struktur yang sama dan memberikan lebih banyak instruksi di blok content
.
Folder aplikasi/templat/aplikasi berisi dua templat halaman HTML lagi. File login.html menentukan konten halaman untuk halaman aplikasi Masuk. File loginpartial.html dibawa ke file layout.html dengan pernyataan {% include %}
. Langkah terakhir (mengautentikasi pengguna) dalam seri tutorial ini menjelaskan dua file templat ini secara lebih rinci.
Inden tag {% blok %} dan {% endblock %} dalam templat
Sampel HTML memperlihatkan markup yang disediakan dalam templat halaman di Visual Studio. Perhatikan bahwa tag block
tidak diindentasi dalam markup. Untuk menampilkan dengan jelas lokasi tag block
, templat halaman Visual Studio tidak mengindentasi tag ini.
Namun, templat halaman Django berfungsi dengan baik jika Anda mengindentasi tag block
. Beberapa pengembang lebih suka menyelaraskan tag dalam elemen HTML induk yang sesuai.
Memeriksa pola rute URL
File URL proyek Django (DjangoWeb/DjangoWeb/urls.py) yang dibuat oleh templat Django Web Project berisi kode berikut:
"""
Definition of urls for DjangoWeb
"""
from datetime import datetime
from django.urls import path
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView
from app import forms, views
urlpatterns = [
path('', views.home, name='home'),
path('contact/', views.contact, name='contact'),
path('about/', views.about, name='about'),
path('login/',
LoginView.as_view
(
template_name='app/login.html',
authentication_form=forms.BootstrapAuthenticationForm,
extra_context=
{
'title': 'Log in',
'year' : datetime.now().year,
}
),
name='login'),
path('logout/', LogoutView.as_view(next_page='/'), name='logout'),
path('admin/', admin.site.urls),
]
Tiga pola URL pertama dipetakan langsung ke fungsi tampilan home
, contact
, dan about
yang ditentukan dalam file proyek aplikasi/views.py. Pola login/
dan logout/
sesuai dengan fitur autentikasi aplikasi.
Pola rute URL khusus seperti ^login/$
dan ^logout$
mengakses tampilan Django bawaan alih-alih tampilan yang ditentukan aplikasi. Panggilan ke metode url
juga menyertakan data tambahan untuk menyesuaikan tampilan. Langkah terakhir (mengautentikasi pengguna) dalam seri tutorial ini menjelaskan cara bekerja dengan panggilan URL.
Menjelajahi perbedaan dalam pola URL
Dalam Langkah 3 (pewarisan templat HTML) seri tutorial ini, jalur untuk halaman "Tentang" menggunakan pola '^about$'
. Pola ini berbeda dari rute URL yang disajikan dalam langkah tutorial ini. Bergantung pada versi templat Anda, kode sampel mungkin menampilkan pola URL halaman "Tentang" sebagai about/
atau ^about
alih-alih ^about$
.
Hilangnya tanda dolar akhir $
dalam ekspresi reguler adalah kesalahan dalam banyak versi templat proyek. Pola URL bekerja dengan sangat baik untuk halaman bernama "about" atau "About." Namun, tanpa karakter $
berikutnya, pola URL juga sesuai dengan pola URL seperti "about=django," "about09876," "about-face," dan sebagainya. Karakter $
berikutnya membuat pola URL yang memastikan kecocokan hanya untuk istilah "tentang."