VS2019 開發Django(二)------hello world!


導航:VS2019開發Django系列

 

第一篇介紹了安裝Django,那么,今天的主題內容是使用VS編寫第一個Django應用。

1)新建Django Web項目

選擇新建Django Web項目,在彈出來的窗口中,修改名稱,修改路徑,創建即可。創建成功之后,VS會自動打開一個readme.html的文件,文件內容是指引你創建超級用戶用來管理你的Django應用。從圖中我們也可以看出來,與Python相關的操作,都在一個獨立的菜單中,以后肯定會經常用到的。

 2)看看VS為我們創建了什么

項目創建完成之后,我們可以看到VS為我們創建了如下圖所以的目錄文件結構,一個app文件夾,一個DjangoLazyOrders文件夾,以及db.sqlite3,manager.py等文件,具體每個文件是用來干嘛的我就不細說了,官方文檔有詳細的說明,我只談一下我自己的理解。

app:類似於Asp.Net MVC項目中的Area,可以這么來理解,實際就是用來區分功能模塊的。

db.sqlite3:說明Django默認是使用sqlite數據庫

urls.py:類似於Asp.Net MVC中的RoutConfig.cs,用來配置路由用的

requirements.txt:Django對版本的配置要求,打開這個文件,VS會提示創建虛擬環境,直接選擇創建即可,創建虛擬環境的目的是為了給當前這個項目一個獨立的運行環境,不受其他環境的影響,因為你的電腦上可能不止一個Python項目

因為VS已經集成了Django的開發環境,所以一些配置的工作,IDE已經給我們配置好了,我們可以直接運行,項目可以正常打開網頁,沒有任何的問題。我們跟蹤代碼,分別來看看app文件夾下邊的這些文件是用來干嘛的:

migrations:這個與Orm相關,用來遷移數據庫用的

static:里邊保存的是一些靜態文件,比如:js,css,fonts文件等,VS內置了bootstrap前端框架的腳本文件

templates:里邊存放的是一些html文件,但是不是靜態的html文件,里邊的數據綁定是有語法規則的,類似於Asp.Net MVC中的cshtml文件中使用的razor語法,python解釋器會按照語法規則來綁定渲染模板文件,然后返回數據給瀏覽器。

forms.py:與表單相關的內容,以及表單數據校驗等

models.py:orm中的entity,與Asp.Net MVC中model的區別是,Asp.Net MVC中的model實質是viewmodel,並不是entity,而這里直接就是entity

tests.py:用來寫測試代碼用的

views.py:類似於Asp.Net MVC中的controller,里邊的函數,就是action方法

 

 3)新建hello app

在項目文件上右鍵,添加,Django應用,命名為hello,確定,VS會自動創建上述所有的文件,省去了一個一個創建文件的麻煩,這也是IDE強大的地方之一。我們要實現一個在瀏覽器中輸入http://localhost:8090/hello得到我們寫的hello world!界面,我們要怎么做?

服務啟動的端口號可以在項目屬性調試中修改

 第一步:在setting.py文件中注冊(引用)我們新增加hello,批注:此時還不是必須,因為我們還沒有用到models

# Application references
# https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-INSTALLED_APPS
INSTALLED_APPS = [
    'hello',
    'app',
    # Add your apps here to enable them
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

 第二步,修改hello app中的view.py文件,添加如下內容:

from django.http import HttpResponse

# Create your views here.
def hello(request):
    return HttpResponse("hello world!");

def test(request):
    return HttpResponse("test")

第三步,在hello app中新增加文件urls.py,文件內容為:

from django.urls import path
from hello import views

urlpatterns = [path('hello/',views.hello,name='hello'),
               path('test/',views.test,name='test')]

第四步,修改DjangoLazyOrders文件夾下的urls.py的內容如下:

"""
Definition of urls for DjangoLazyOrders.
"""

from datetime import datetime
from django.urls import path,include 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),
    path('', include('hello.urls')),]

第五步,訪問,啟動調試,在地址后面追加hello回車,得到了我們要展示的內容hello world!

 4)總結

  • 該篇主要介紹了,Django項目的目錄結構,介紹每個文件是干嘛用的
  • 完成經典入門app的hello world


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM