欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Django框架創(chuàng)建項(xiàng)目

 更新時(shí)間:2022年06月10日 15:20:03   作者:springsnow  
這篇文章介紹了使用Django框架創(chuàng)建項(xiàng)目的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本章我們將介紹Django 管理工具及如何使用 Django 來(lái)創(chuàng)建項(xiàng)目,第一個(gè)項(xiàng)目我們以 HelloWorld 來(lái)命令項(xiàng)目。

一、Django 管理工具

安裝 Django 之后,您現(xiàn)在應(yīng)該已經(jīng)有了可用的管理工具 django-admin.py。我們可以使用 django-admin.py 來(lái)創(chuàng)建一個(gè)項(xiàng)目:

我們可以來(lái)看下django-admin 的命令介紹:

$ django-admin.py

二、創(chuàng)建第一個(gè)項(xiàng)目

使用 django-admin.py 來(lái)創(chuàng)建 HelloWorld 項(xiàng)目:

django-admin.py startproject HelloWorld

創(chuàng)建完成后我們可以查看下項(xiàng)目的目錄結(jié)構(gòu):

$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目錄說(shuō)明:

  • HelloWorld: 項(xiàng)目的容器。
  • manage.py: 一個(gè)實(shí)用的命令行工具,Django管理主文件。
  • HelloWorld/__init__.py: 一個(gè)空文件,告訴 Python 該目錄是一個(gè) Python 包。
  • HelloWorld/asgi.py: 一個(gè) ASGI 兼容的 Web 服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。
  • HelloWorld/settings.py: 項(xiàng)目的設(shè)置/配置文件。
  • HelloWorld/urls.py: 項(xiàng)目的URL路由文件; 一份由 Django 驅(qū)動(dòng)的網(wǎng)站"目錄"。
  • HelloWorld/wsgi.py: 一個(gè) WSGI 兼容的 Web 服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。

接下來(lái)我們進(jìn)入 HelloWorld 目錄輸入以下命令,啟動(dòng)服務(wù)器:

manage.py runserver 0.0.0.0:8000

0.0.0.0 讓其它電腦可連接到開發(fā)服務(wù)器,8000 為端口號(hào)。如果不說(shuō)明,那么端口號(hào)默認(rèn)為 8000。

在瀏覽器輸入你服務(wù)器的 ip(這里我們輸入本機(jī) IP 地址: 127.0.0.1:8000) 及端口號(hào),如果正常啟動(dòng),輸出結(jié)果如下:

三、視圖和 URL 配置

在先前創(chuàng)建的 HelloWorld 目錄下的 HelloWorld 目錄新建一個(gè) views.py 文件,并輸入代碼:

from django.http import HttpResponse #需要導(dǎo)入HttpResponse模塊

def hello(request):  # 定義Hello函數(shù)。request參數(shù)必須有,名字類似self的默認(rèn)規(guī)則,可以修改,它封裝了用戶請(qǐng)求的所有內(nèi)容
    return HttpResponse("Hello world ! ") #不能直接字符串,必須是由這個(gè)類封裝,此為Django規(guī)則

接著,綁定 URL 與視圖函數(shù)。打開 urls.py 文件,刪除原來(lái)代碼,將以下代碼復(fù)制粘貼到 urls.py 文件中:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url

from mytest import views  # 首先需要導(dǎo)入對(duì)應(yīng)APP的views

urlpatterns = [
    path('admin/', admin.site.urls),  # admin后臺(tái)路由
    url(r'^$', views.hello),  # 你定義的路由,第一個(gè)參數(shù)為引號(hào)中的正則表達(dá)式,第二個(gè)參數(shù)業(yè)務(wù)邏輯函數(shù)(當(dāng)前為views中的hello函數(shù))
]

整個(gè)目錄結(jié)構(gòu)如下:

$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py              # url 配置
|   |-- urls.pyc
|   |-- views.py              # 添加的視圖文件
|   |-- views.pyc             # 編譯后的視圖文件
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- manage.py

完成后,啟動(dòng) Django 開發(fā)服務(wù)器,并在瀏覽器訪問(wèn)打開瀏覽器并訪問(wèn):

我們也可以修改以下規(guī)則:

from django.urls import path
 
from . import views
 
urlpatterns = [
    path('hello/', views.hello),
]

通過(guò)瀏覽器打開 http://127.0.0.1:8000/hello,輸出結(jié)果如下:

注意:項(xiàng)目中如果代碼有改動(dòng),服務(wù)器會(huì)自動(dòng)監(jiān)測(cè)代碼的改動(dòng)并自動(dòng)重新載入,所以如果你已經(jīng)啟動(dòng)了服務(wù)器則不需手動(dòng)重啟。

四、path() 函數(shù)

Django path() 可以接收四個(gè)參數(shù),分別是兩個(gè)必選參數(shù):route、view 和兩個(gè)可選參數(shù):kwargs、name。

語(yǔ)法格式:

path(route, view, kwargs=None, name=None)
  • route: 字符串,表示 URL 規(guī)則,與之匹配的 URL 會(huì)執(zhí)行對(duì)應(yīng)的第二個(gè)參數(shù) view。
  • view: 用于執(zhí)行與正則表達(dá)式匹配的 URL 請(qǐng)求。
  • kwargs: 視圖使用的字典類型的參數(shù)。
  • name: 用來(lái)反向獲取 URL。

如果是 Django >= 2.0 的版本,path() 函數(shù)無(wú)法匹配正則表達(dá)式,需要使用 re_path() 即可匹配正則表達(dá)式:

from django.urls import re_path 
from . import view 
urlpatterns = [
    re_path(r'^hello$',view.hello),
]

五、使用PyCharm創(chuàng)建Django項(xiàng)目

PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語(yǔ)言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語(yǔ)法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制。此外,該IDE提供了一些高級(jí)功能,以用于支持Django框架下的專業(yè)Web開發(fā)。剛玩Python或Django的朋友,如果沒(méi)有自己熟悉的IDE,建議直接使用這個(gè)。PyCharm可跨平臺(tái),支持市面流行的操作系統(tǒng)。

下面,我教大家使用pycharm創(chuàng)建自己的第一個(gè)django項(xiàng)目。

1、打開PyCharm,新建項(xiàng)目

界面講解:

點(diǎn)擊創(chuàng)建之后,PyCharm自動(dòng)幫我們創(chuàng)建一個(gè)虛擬環(huán)境和安裝最新版的Django。

安裝成功之后,我們剛才指定的目錄下就多出一個(gè)untiltled4文件夾。打開untiltled4文件夾。

這就是Django的目錄結(jié)構(gòu),其中

templates文件夾是存放模板文件的,

untiltled4文件夾放的是Django的一些配置文件。

manage.py文件則是對(duì)django-admin.py的簡(jiǎn)單包裝的一個(gè)文件,通過(guò)它能運(yùn)行一些簡(jiǎn)單的命令。

venv文件夾就是virtualenv虛擬環(huán)境目錄,venv文件夾不是django源碼里的東西,只是我們創(chuàng)建虛擬環(huán)境時(shí)指定到這個(gè)目錄下了而已。

我們?cè)趧?chuàng)建Django項(xiàng)目的時(shí)候,也可以不用在More Settings里創(chuàng)建APP和指定templates文件夾。

我們可以手動(dòng)通方法創(chuàng)建。

2、通過(guò)命令行,添加新的APP。

點(diǎn)擊PyCharm下方的Terminal,看下圖:

注意命令行前面的 (venv)出現(xiàn)這個(gè),表示我們是在virtualenv虛擬環(huán)境下操作,如果沒(méi)有,或者虛擬環(huán)境名和我們創(chuàng)建的名稱不一致,說(shuō)明PyCharm配置錯(cuò)誤,我們輸入任何命令對(duì)剛才我們創(chuàng)建的項(xiàng)目來(lái)說(shuō)是無(wú)效的。

我們通過(guò)命令行,進(jìn)入我們的項(xiàng)目目錄,然后輸入

python manage.py startapp mytest

創(chuàng)建一個(gè)叫 mytest的APP。

或者從主菜單中,選擇“工具”運(yùn)行manage.py task,在Django控制臺(tái)對(duì)話框中,鍵入startapp startapp mytest.

回車之后我們就能看到,我們的項(xiàng)目目錄里多出一個(gè)mytest文件夾。

關(guān)于更多的一些Django常用的命令,大家可以看看這篇文章:Django常用命令

3、遷移數(shù)據(jù)庫(kù)。

在Terminal下輸入下面的命令,生成和同步數(shù)據(jù)庫(kù)。

python manage.py makemigrations
python manage.py migrate

4、啟動(dòng)Django項(xiàng)目

點(diǎn)擊“運(yùn)行”按鈕

項(xiàng)目啟動(dòng)成功,然后我們通過(guò)瀏覽器訪問(wèn)http://127.0.0.1:8080/

這樣,我們的第一個(gè)Django項(xiàng)目就創(chuàng)建完成了。

5、Django模板

修改views文件:

from django.shortcuts import render


def hello(request):
    # return HttpResponse("Hello world ! ")
    context = {'hello': 'Hello World!'}
    return render(request, 'hello.html', context)  # 將綁定的數(shù)據(jù)傳入前臺(tái)

為了讓django知道html文件在哪里,需要修改settings文件的相應(yīng)內(nèi)容。默認(rèn)情況下,正好適用,無(wú)需修改。

被繼承的模板base.html:

{#base.html#}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>模板測(cè)試</title>
</head>
<body>
    <h1>{{ hello }}</h1>
    <p>Django模板測(cè)試</p>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
</body>
</html>

hello.html 中繼承 base.html,并替換特定 block,hello.html 修改后的代碼如下:

{#hello.html#}
{% extends "base.html" %}
 
{% block mainbody %}
   <p>繼承了 base.html 文件</p>
{% endblock %}

刷新網(wǎng)頁(yè),輸出結(jié)果如下:

6、引入靜態(tài)文件

需要將一些靜態(tài)資源引入項(xiàng)目,新建一個(gè)static目錄,可以將js、css、圖片等文件放入這個(gè)目錄中:

 

 

需要讓Django找到這個(gè)目錄,需要在setting文件中進(jìn)行配置:

STATICFILES_DIRS=

在html文件中引入靜態(tài)資源:

{% load static %}
{#base.html#}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="{% static 'css/mypage.css' %}" rel="external nofollow" >
    <script src="{% static 'js/jquery-1.11.1.js' %}"></script>
<title>模板測(cè)試</title>
</head>
    <body>
        <h1>{{ hello }}</h1>
        <p>Django模板測(cè)試</p>
        {% block mainbody %}
           <p>original</p>
        {% endblock %}
    </body>
</html>

第一行引入靜態(tài)文件路徑{% load staticfiles %},在<head>...</head>里加入CSS網(wǎng)鏈和js文件

到此這篇關(guān)于使用Django框架創(chuàng)建項(xiàng)目的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)四人制撲克牌游戲

    python實(shí)現(xiàn)四人制撲克牌游戲

    這篇文章主要介紹了python實(shí)現(xiàn)四人制撲克牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 淺談python輸出列表元素的所有排列形式

    淺談python輸出列表元素的所有排列形式

    今天小編就為大家分享一篇淺談python輸出列表元素的所有排列形式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python常用內(nèi)置模塊你了解嗎

    python常用內(nèi)置模塊你了解嗎

    這篇文章主要為大家介紹了python的常用內(nèi)置模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python基于分水嶺算法解決走迷宮游戲示例

    Python基于分水嶺算法解決走迷宮游戲示例

    這篇文章主要介紹了Python基于分水嶺算法解決走迷宮游戲,結(jié)合具體實(shí)例形式分析了分水嶺算法解決迷宮問(wèn)題的相關(guān)步驟與操作技巧,需要的朋友可以參考下
    2017-09-09
  • 深入講解Python中的上下文管理器和with語(yǔ)句

    深入講解Python中的上下文管理器和with語(yǔ)句

    這篇文章主要為大家介紹了Python中的上下文管理器和with語(yǔ)句的深入講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 在Mac OS上使用mod_wsgi連接Python與Apache服務(wù)器

    在Mac OS上使用mod_wsgi連接Python與Apache服務(wù)器

    這篇文章主要介紹了在Mac OS上使用mod_wsgi連接Python與Apache服務(wù)器的方法,同時(shí)文中還介紹了使用Python的Django框架時(shí)mod_wsgi連接方式下可能遇到的問(wèn)題的一般解決方法,需要的朋友可以參考下
    2015-12-12
  • python3+PyQt5實(shí)現(xiàn)柱狀圖

    python3+PyQt5實(shí)現(xiàn)柱狀圖

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)柱狀圖的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 如何基于Python獲取圖片的物理尺寸

    如何基于Python獲取圖片的物理尺寸

    這篇文章主要介紹了如何基于Python獲取圖片的物理尺寸,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel

    Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel

    批量文字識(shí)別是Python辦公自動(dòng)化的基本操作,應(yīng)用在我們工作生活中的方方面面。本文主要以開源免費(fèi)的easyocr來(lái)實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • wxPython多個(gè)窗口的基本結(jié)構(gòu)

    wxPython多個(gè)窗口的基本結(jié)構(gòu)

    這篇文章主要為大家詳細(xì)介紹了wxPython多個(gè)窗口的基本結(jié)構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評(píng)論