[原](06)Django-TestOps網(wǎng)站

Django-TestOps網(wǎng)站

源碼地址:https://github.com/ellaann/TestOpsPlatform

項目實現(xiàn)功能

概述:前端通過Bootstrap框架阀圾,借助AdminLte模板實現(xiàn)交互樣式晨雳;后端通過Python+Django實現(xiàn)參數(shù)傳遞筐骇;數(shù)據(jù)庫通過sqlite3,實現(xiàn)數(shù)據(jù)讀取保存。

1、注冊

sign_up.png

2逐工、登錄


sign_in.png

3、登錄后的主頁顯示


index.png

4铝噩、網(wǎng)站歸納

1)公司網(wǎng)站

company_websites_online.png

2)常用網(wǎng)站

common_websites.png

3)新增網(wǎng)站

add_new.gif

5衡蚂、項目部署&上線

1)測試環(huán)境部署


test_env_deploy.png

2)通過dwebsocket,實現(xiàn)與服務(wù)器連接,輸入查詢指令后骏庸,頁面的實時滾動


test_deploy.gif

6毛甲、SQL同步

sql_sync.png

一、官方文檔

Django中文官網(wǎng): https://docs.djangoproject.com/zh-hans/3.0/

Django英文官網(wǎng): https://docs.djangoproject.com/en/3.0/

二具被、初始化

1玻募、創(chuàng)建項目

使用 startproject 來創(chuàng)建項目

django-admin startproject edrainsite

項目顯示:

test_ops/
    manage.py
    test_ops/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

這些目錄和文件的用處是:

  • The outer test_ops/ root directory is a container for your project. Its name doesn't matter to Django; you can rename it to anything you like.
  • manage.py: 一個讓你用各種方式管理 Django 項目的命令行工具。你可以閱讀 django-admin and manage.py 獲取所有 manage.py 的細節(jié)一姿。
  • 里面一層的 test_ops/ 目錄包含你的項目七咧,它是一個純 Python 包。它的名字就是當(dāng)你引用它內(nèi)部任何東西時需要用到的 Python 包名叮叹。 (比如 test_ops.urls).
  • test_ops/init.py:一個空文件艾栋,告訴 Python 這個目錄應(yīng)該被認為是一個 Python 包。如果你是 Python 初學(xué)者蛉顽,閱讀官方文檔中的 更多關(guān)于包的知識蝗砾。
  • test_ops/settings.py:Django 項目的配置文件。如果你想知道這個文件是如何工作的携冤,請查看 Django 配置 了解細節(jié)悼粮。
  • test_ops/urls.py:Django 項目的 URL 聲明,就像你網(wǎng)站的“目錄”曾棕。閱讀 URL調(diào)度器 文檔來獲取更多關(guān)于 URL 的內(nèi)容扣猫。
  • test_ops/asgi.py: 兼容ASGI的Web服務(wù)器為您的項目提供服務(wù)的入口點。See How to deploy with ASGI for more details.
  • test_ops/wsgi.py:作為你的項目的運行在 WSGI 兼容的Web服務(wù)器上的入口睁蕾。閱讀 如何使用 WSGI 進行部署 了解更多細節(jié)苞笨。

2债朵、運行項目

py manage.py runserver 127.0.0.1:8028
樣就可以運行起來啦 打開網(wǎng)址:http://127.0.0.1:8028/ 進行校驗

3、創(chuàng)建應(yīng)用

py manage.py startapp sign

這些目錄和文件的用處是:

  • migrations/:用于記錄models中數(shù)據(jù)的變更瀑凝;
  • admin.py:映射models中的數(shù)據(jù)到Django自帶的admin后臺序芦;
  • apps.py:用于應(yīng)用程序的配置(在新的Django版本中新增文件);
  • models.py: Django的模型文件粤咪,創(chuàng)建應(yīng)用程序數(shù)據(jù)表模型(對應(yīng)數(shù)據(jù)庫的相關(guān)操作)谚中;
  • tests.py:創(chuàng)建Django測試用例;
  • views.py: Django的視圖文件寥枝,控制向前段頁面顯示的內(nèi)容宪塔。

三、編寫第一個視圖

1囊拜、打開 sign/views.py

把下面這些 Python 代碼輸入進去:

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the sign index.")

這是 Django 中最簡單的視圖某筐。如果想看見效果,我們需要將一個 URL 映射到它——這就是我們需要 URLconf 的原因了冠跷。

為了創(chuàng)建 URLconf南誊,請在 sign目錄里新建一個 urls.py 文件。

2蜜托、在 sign目錄里新建一個 urls.py 文件

輸入如下代碼:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

3抄囚、在根 URLconf 文件中指定創(chuàng)建的 sign.urls 模塊

test_ops/urls.py 文件的 urlpatterns 列表里插入一個 include(), 如下:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sign/', include('sign.urls')),
]

函數(shù) include() 允許引用其它 URLconfs橄务。每當(dāng) Django 遇到 include() 時幔托,它會截斷與此項匹配的 URL 的部分,并將剩余的字符串發(fā)送到 URLconf 以供進一步處理蜂挪。

include() 的理念是使其可以即插即用重挑。因為sign應(yīng)用有它自己的 URLconf( sign/urls.py ),他們能夠被放在 "/sign/" 锅劝, "/fun_sign/" 攒驰,"/content/sign/",或者其他任何路徑下故爵,這個應(yīng)用都能夠正常工作玻粪。

當(dāng)包括其它 URL 模式時你應(yīng)該總是使用 include()admin.site.urls 是唯一例外诬垂。

四劲室、通過templates來展示頁面

1、在sign文件夾下面结窘,創(chuàng)建templates文件夾

2很洋、創(chuàng)建sign.html文件

<html>
    <head>
        <title>Sign</title>
    </head>
    <body>
        <h1>Hello Web!</h1>
    </body>
</html>

3、修改sign/urls.py文件

from django.shortcuts import render


def sign(request):
    # return HttpResponse("Hello, world. You're at the sign index.")
    return render(request, 'sign.html')

4隧枫、修改settings.py文件喉磁,新增'sign',文字

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 你項目的 TEMPLATES 配置項描述了 Django 如何載入和渲染模板谓苟。
    # 默認的設(shè)置文件設(shè)置了 DjangoTemplates 后端,并將 APP_DIRS 設(shè)置成了 True协怒。
    # 這一選項將會讓 DjangoTemplates 在每個 INSTALLED_APPS 文件夾中尋找 "templates" 子目錄涝焙。
    'sign',
]

你項目的 TEMPLATES 配置項描述了 Django 如何載入和渲染模板。默認的設(shè)置文件設(shè)置了 DjangoTemplates 后端孕暇,并將 APP_DIRS 設(shè)置成了 True仑撞。這一選項將會讓 DjangoTemplates 在每個 INSTALLED_APPS 文件夾中尋找 "templates" 子目錄。這就是為什么盡管我們沒有像在第二部分中那樣修改 DIRS 設(shè)置妖滔,Django 也能正確找到 polls 的模板位置的原因隧哮。

輸入網(wǎng)址:http://127.0.0.1:8028/sign/

五、數(shù)據(jù)庫配置

Django 提供完善的模型(model)層主要用來創(chuàng)建和存取數(shù)據(jù)座舍,不需要我們直接對數(shù)據(jù)庫操作沮翔。

Django模型的基礎(chǔ)知識:

  • 每個模型是一個Python類,繼承django.db.models.Model類
  • 該模型的每個屬性表示一個數(shù)據(jù)庫表字段
  • 所有這一切曲秉,已經(jīng)給了你一個自動生成數(shù)據(jù)庫訪問的API

1鉴竭、打開 test_ops/settings.py ,配置Database

這是個包含了 Django 項目設(shè)置的 Python 模塊。通常岸浑,這個配置文件使用 SQLite 作為默認數(shù)據(jù)庫。如果你不熟悉數(shù)據(jù)庫瑰步,或者只是想嘗試下 Django矢洲,這是最簡單的選擇。Python 內(nèi)置 SQLite缩焦,所以你無需安裝額外東西來使用它读虏。當(dāng)你開始一個真正的項目時,你可能更傾向使用一個更具擴展性的數(shù)據(jù)庫袁滥,例如 PostgreSQL盖桥,避免中途切換數(shù)據(jù)庫這個令人頭疼的問題。

如果你想使用其他數(shù)據(jù)庫题翻,你需要安裝合適的 database bindings 揩徊,然后改變設(shè)置文件中 DATABASES 'default' 項目中的一些鍵值:

  • ENGINE -- 可選值有 'django.db.backends.sqlite3''django.db.backends.postgresql'嵌赠,'django.db.backends.mysql'塑荒,或 'django.db.backends.oracle'。其它 可用后端姜挺。
  • NAME - 數(shù)據(jù)庫的名稱齿税。如果使用的是 SQLite,數(shù)據(jù)庫將是你電腦上的一個文件炊豪,在這種情況下凌箕, NAME 應(yīng)該是此文件的絕對路徑,包括文件名。默認值 os.path.join(BASE_DIR, 'db.sqlite3') 將會把數(shù)據(jù)庫文件儲存在項目的根目錄赏参。
# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

2腰涧、打開 test_ops/settings.py ,配置INSTALLED_APPS

test_ops/settings.py文件頭部的 INSTALLED_APPS 設(shè)置項。這里包括了會在你項目中啟用的所有 Django 應(yīng)用。應(yīng)用能在多個項目中使用雇卷,你也可以打包并且發(fā)布應(yīng)用翘瓮,讓別人使用它們调榄。

通常择份, INSTALLED_APPS 默認包括了以下 Django 的自帶應(yīng)用:

這些應(yīng)用被默認啟用是為了給常規(guī)項目提供方便。

默認開啟的某些應(yīng)用需要至少一個數(shù)據(jù)表账阻,所以,在使用他們之前需要在數(shù)據(jù)庫中創(chuàng)建一些表。請執(zhí)行以下命令:

...\> py manage.py migrate

就像之前說的,為了方便大多數(shù)項目巢音,我們默認激活了一些應(yīng)用似谁,但并不是每個人都需要它們蛀缝。如果你不需要某個或某些應(yīng)用在讶,你可以在運行 migrate 前毫無顧慮地從 INSTALLED_APPS 里注釋或者刪除掉它們。 migrate 命令只會為在 INSTALLED_APPS 里聲明了的應(yīng)用進行數(shù)據(jù)庫遷移构哺。

3革答、創(chuàng)建模型

在sign/models.py文件中,新增


4曙强、當(dāng)模型創(chuàng)建好以后残拐,執(zhí)行數(shù)據(jù)庫遷移

使用如下命令進行數(shù)據(jù)庫表的初始化和創(chuàng)建(遷移):

運行 python manage.py makemigrations sign 為模型的改變生成遷移文件。
運行 python manage.py migrate 來應(yīng)用數(shù)據(jù)庫遷移碟嘴。

六溪食、認證登錄

1、創(chuàng)建admin系統(tǒng)用戶

...\> python manage.py createsuperuser

2娜扇、輸入用戶错沃、密碼信息

py manage.py createsuperuser

sername (leave blank to use 'edrain'): admin

mail address: admin@mail.com

Password:

assword (again):

his password is too short. It must contain at least 8 characters.

his password is too common.

ypass password validation and create user anyway? [y/N]: y

uperuser created successfully.

七、開發(fā)模式

這段話在Django官方文檔也曾出現(xiàn)過:鼓勵松耦合以及對應(yīng)用程序中不同部分的嚴格分割雀瓢。

1枢析、MVC開發(fā)模式

MVC:Model-View-Controller

  • model:數(shù)據(jù)存取層。
  • view:表現(xiàn)邏輯刃麸,代表的是系統(tǒng)中選擇顯示什么和怎么顯示的部分醒叁。
  • controller:業(yè)務(wù)邏輯,代表系統(tǒng)中根據(jù)用戶輸入及需要訪問模型,使用哪個視圖的哪部分辐益。

對應(yīng)到Django后:

  • Model:數(shù)據(jù)存取部分断傲,由Django數(shù)據(jù)庫層處理;
  • View:表現(xiàn)邏輯智政,選擇顯示哪些數(shù)據(jù)要顯示以及怎樣顯示的部分认罩,由Django的視圖和模板處理;
  • Controller:業(yè)務(wù)邏輯续捂,由Django根據(jù)URLconf設(shè)置垦垂,對給定URL調(diào)用適當(dāng)?shù)腜ython函數(shù)。

2牙瓢、MTV開發(fā)模式

由于Controller由框架自行處理劫拗,而Django里更關(guān)注的是模型(Model)、模板(Template)矾克、視圖(View)页慷,因此Django也被稱為MTV框架。

MTV:Model-Template-Views

  • Model:模型胁附,數(shù)據(jù)存取層酒繁,該層處理與數(shù)據(jù)相關(guān)的所有事務(wù),即如何存取控妻、如果驗證有效等州袒;
  • Template:模板,表現(xiàn)層弓候,該層處理與表現(xiàn)相關(guān)的所有事務(wù)郎哭,即如何在頁面或者其他類型文檔中進行顯示;
  • View:視圖菇存,業(yè)務(wù)邏輯層夸研,該層包含存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯,可以看作是模型和模板之間的橋梁依鸥。

八亥至、小技巧

1、去除模板中的硬編碼 URL

1)修改sign/templates/sign/sign_in.html文件

當(dāng)發(fā)送登錄請求時毕籽,鏈接是硬編碼的:

<form action="/login_action/" method="post">

問題在于,硬編碼和強耦合的鏈接井辆,對于一個包含很多應(yīng)用的項目來說关筒,修改起來是十分困難的。然而杯缺,因為你在 sign.urlsurl() 函數(shù)中通過 name 參數(shù)為 URL 定義了名字蒸播,你可以使用 {% url %} 標(biāo)簽代替它。

替代如下:

<form action="{% url 'login_action' %}" method="post">

這個標(biāo)簽的工作方式是在 sign.urls 模塊的 URL 定義中尋具有指定名字的條目。你可以回憶一下袍榆,具有名字 'login_action' 的 URL 是在如下語句中定義的胀屿。

2)修改sign/urls.py文件,新增name='login_action'

path('login_action/', views.login_action, name='login_action'), # name的值可以在html中關(guān)聯(lián){% url 'xxx' %} template tag

如果你想改變登錄視圖的 URL包雀,比如想改成 sign/edrain/login_action/ 宿崭,你不用在模板里修改任何東西(包括其它模板),只要在sign/urls.py 里稍微修改一下就行才写。

修改如下:

# added the word 'edrain'
path('edrain/login_action/', views.login_action, name='login_action'),

2葡兑、為 URL 名稱添加命名空間

Django 如何知道 {% url %} 標(biāo)簽到底對應(yīng)哪一個應(yīng)用的 URL 呢?

1)在根 URLconf 中添加命名空間赞草。在 sign/urls.py 文件中稍作修改讹堤,加上 app_name 設(shè)置命名空間:

from django.urls import path

from . import views

app_name = 'sign'  # 設(shè)置命名空間
urlpatterns = [
    path('', views.sign, name='sign'),
    path('login_action/', views.login_action, name='login_action'),  # name的值可以在html中關(guān)聯(lián){% url 'xxx' %} template tag
]

2)修改sign/templates/sign/sign_in.html文件,

<form action="{% url 'login_action' %}" method="post">

修改為指向具有命名空間的詳細視圖,變更為:

<form action="{% url 'sign:login_action' %}" method="post">

3厨疙、HttpReponseDirect使用軟編碼鏈接

硬編碼鏈接:可以通過使用HttpResponseRedirect('/index/?page=2')直接獲取第2頁的文章列表

HttpReponseDirect只支持hard coded urls(硬編碼鏈接), 不能直接使用命名的URL洲守,如使用HttpResponseDirect('blog:article_list‘)是錯誤的。

在使用URL命名時沾凄,我們需要先通過URL反向解析方法reverse先對命名URL(article_list)進行解析梗醇,然后再使用HttpReponseRedirect定向(如下面的代碼)。背后的邏輯是reverse('blog:article_list')='/index/'搭独。

def login_action(request):
    """執(zhí)行 登錄按鈕 操作后的界面"""
    if request.method == 'POST':
        username = request.POST.get('username', '')  # 此處對應(yīng)表單的form中的input的 name屬性
        password = request.POST.get('password', '')
        if username == 'qwer' and password == 'qwer':
            return HttpResponseRedirect(reverse('sign:home'))  # 對路徑重定向婴削,成功登陸之后重新指向 /sign/home/ 頁面

鏈接:https://blog.csdn.net/weixin_42134789/article/details/81505963

九、疑問

Q1:db.sqlite3是什么牙肝?

A1:鏈接:https://www.runoob.com/sqlite/sqlite-intro.html

SQLite是一個進程內(nèi)的庫唉俗,實現(xiàn)了自給自足的、無服務(wù)器的配椭、零配置的虫溜、事務(wù)性的 SQL 數(shù)據(jù)庫引擎。它是一個零配置的數(shù)據(jù)庫股缸,這意味著與其他數(shù)據(jù)庫一樣衡楞,您不需要在系統(tǒng)中配置。就像其他數(shù)據(jù)庫敦姻,SQLite 引擎不是一個獨立的進程瘾境,可以按應(yīng)用程序需求進行靜態(tài)或動態(tài)連接。SQLite 直接訪問其存儲文件镰惦。

Q2:項目和應(yīng)用區(qū)別迷守?

A2:鏈接:https://docs.djangoproject.com/zh-hans/3.0/intro/tutorial01/

應(yīng)用程序是執(zhí)行某項操作的Web應(yīng)用程序,例如Weblog系統(tǒng)旺入,公共記錄數(shù)據(jù)庫或小型民意調(diào)查應(yīng)用程序兑凿。

項目是特定網(wǎng)站的配置和應(yīng)用程序的集合凯力。一個項目可以包含多個應(yīng)用程序。一個應(yīng)用程序可以在多個項目中礼华。

Q3:Pycharm提示“Unresolved attribute reference 'objects' for class 'UserModel'”

A3:You need to enable Django support. Go to

PyCharm -> Preferences -> Languages & Frameworks -> Django

and then check Enable Django Support

Q4:USE_TZ時區(qū)問題

datetime.datetime.now()咐鹤、datetime.datetime.utcnow()與django.util.timezone.now()的區(qū)別

datetime.datetime.now():
輸出的永遠是本地時間(naive time)與配置無任任何關(guān)系。

datetime.datetime.utcnow():
如果setting中配置USE_TZ=True則輸出的是UTC時間(naive time);如果setting中配置USE_TZ=False圣絮,則該輸出時間與datetime.datetime.now()完全相同祈惶。

django.util.timezone.now():
如果setting中配置USE_TZ=True則輸出的是UTC時間(active time),如果配置USE_TZ=False晨雳,則與datetime.datetime.now()完全相同行瑞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市餐禁,隨后出現(xiàn)的幾起案子血久,更是在濱河造成了極大的恐慌,老刑警劉巖帮非,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氧吐,死亡現(xiàn)場離奇詭異,居然都是意外死亡末盔,警方通過查閱死者的電腦和手機筑舅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陨舱,“玉大人翠拣,你說我怎么就攤上這事∮蚊ぃ” “怎么了误墓?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長益缎。 經(jīng)常有香客問我谜慌,道長,這世上最難降的妖魔是什么莺奔? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任欣范,我火速辦了婚禮,結(jié)果婚禮上令哟,老公的妹妹穿的比我還像新娘恼琼。我一直安慰自己,他們只是感情好屏富,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布晴竞。 她就那樣靜靜地躺著,像睡著了一般役听。 火紅的嫁衣襯著肌膚如雪颓鲜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天典予,我揣著相機與錄音甜滨,去河邊找鬼。 笑死瘤袖,一個胖子當(dāng)著我的面吹牛衣摩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捂敌,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼艾扮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了占婉?” 一聲冷哼從身側(cè)響起泡嘴,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逆济,沒想到半個月后酌予,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡奖慌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年抛虫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片简僧。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡建椰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岛马,到底是詐尸還是另有隱情棉姐,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布蛛枚,位于F島的核電站谅海,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蹦浦。R本人自食惡果不足惜扭吁,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盲镶。 院中可真熱鬧侥袜,春花似錦、人聲如沸溉贿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宇色。三九已至九杂,卻和暖如春颁湖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背例隆。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工甥捺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人镀层。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓镰禾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親唱逢。 傳聞我的和親對象是個殘疾皇子吴侦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 點我查看本文集的說明及目錄。 本項目相關(guān)內(nèi)容包括: 實現(xiàn)過程: CH7 創(chuàng)建在線商店 CH8 管理支付和訂單 CH...
    學(xué)以致用123閱讀 3,569評論 0 6
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,984評論 1 3
  • PythonWeb框架要點坞古、Django介紹备韧、工程搭建、配置痪枫、靜態(tài)文件與路由 1.Python Web 框架要點 ...
    Cestine閱讀 1,484評論 0 6
  • Django 準(zhǔn)備 “虛擬環(huán)境為什么需要虛擬環(huán)境:到目前位置盯蝴,我們所有的第三方包安裝都是直接通過 pip inst...
    33jubi閱讀 1,324評論 0 5
  • 自強學(xué)堂Django教程 目錄 Django是目前最流行的Python Web框架捧挺。 一、Django的MTV模式...
    CaiGuangyin閱讀 1,157評論 4 3