成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Django2.2圖文教程

roundstones / 2791人閱讀

摘要:事實(shí)上,社區(qū)成員給了他一個榮譽(yù)稱號終生仁慈獨(dú)裁者。說明圖片來源百度。安裝終端下或是在里面,命令相同。同步數(shù)據(jù)庫在終端中執(zhí)行此命令執(zhí)行完成后,會在下生產(chǎn)記錄變動的記錄。此時數(shù)據(jù)庫并未變動,然后執(zhí)行這樣的變動,立即同步到數(shù)據(jù)庫中。

原文鏈接

1.準(zhǔn)備工作

開發(fā)環(huán)境:
python: 3.7.3 下載地址:https://www.python.org/downlo...
pip: pip3
Django: 2.2 下載地址: https://www.djangoproject.com...
PyCharm: 2017.2 下載地址:https://www.jetbrains.com/pyc...

2.基礎(chǔ)知識

1.Python: Python發(fā)源于八十年代后期。開發(fā)者是Centrum Wiskunde & Informatica的Guido van Rossum,這是位于荷蘭阿姆斯特丹科學(xué)園區(qū)的一個數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究中心。之后Van Rossum一直是Python開發(fā)很有影響的人物。事實(shí)上,社區(qū)成員給了他一個榮譽(yù)稱號:終生仁慈獨(dú)裁者(BDFL)。

2.web框架介紹
web框架的概念就像建房子,地基、支撐柱、大梁的骨架還有其他沙石、地板等等材料已經(jīng)有了,
剩下的就是靠你自己組裝起來。猶如積木一樣。

說明:圖片來源百度。

Django: Python代表性web框架,
遵循MMVC架構(gòu)模式的開源框架。
它的名字來自Django Reinhardt,一個法國作曲家和吉他演奏家,很多人認(rèn)為他是歷史上最偉大的吉他演奏家。位于堪薩斯洲的Lawrence城的Lawrence Journal-World報社有兩位程序員,Adrian Holovaty和Simon Willison,他們在2003的時候開發(fā)出了Django,用于給報紙開發(fā)web程序。

其他框架:tornado、flask、webpy

3.實(shí)例

Python的和Pycharm的安裝忽略,安裝比較簡單。

1.安裝

Mac終端下:

$ pip3 install django # 或 pip3 install django==2.2

Windows是在cmd里面,命令相同。

2.創(chuàng)建項(xiàng)目

打開Pycharm,歡迎頁create project,然后

然后點(diǎn)擊create就可以了。

PS:創(chuàng)建項(xiàng)目也可以使用命令這里不做介紹.

django-admin createproject DjangoQuick
django-admin startapp quick
3.項(xiàng)目結(jié)構(gòu)

4.啟動項(xiàng)目

Pycharm菜單欄

直接點(diǎn)擊運(yùn)行?;蛘咦笙陆荰erminal輸入python3 manage.py runserver

將會在瀏覽器看到

這樣表示項(xiàng)目已經(jīng)啟動成功,但是我們沒有編寫任何代碼,所以出現(xiàn)了默認(rèn)的錯誤提示。

5.添加視圖

打開quick目錄下的views.py,輸入一下內(nèi)容

from django.shortcuts import render
from django.http import HttpResponse # 新添加
# Create your views here.

# 新添加
def index(request):
    return HttpResponse("success")

6.添加url

打開DjangoQuick下的urls.py,修改如下:

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

from quick.views import index # 導(dǎo)入包

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", index) # 添加新的映射關(guān)系
]

如果使用Pycharm的按鈕啟動項(xiàng)目,需要點(diǎn)擊stop,重新運(yùn)行,如果在terminal中運(yùn)行項(xiàng)目,會自動重啟。
然后刷新瀏覽器。

然后就會看到我們在views.py的index方法中的輸出。

7.返回Html(模版)

在quick目錄新建templates目錄

然后右鍵-new-html file, 新建一個index.html文件

index.html




    
    Title


這是一個html from:https://litets.com

修改views.py文件

from django.shortcuts import render


def index(request):
    return render(request, "index.html")

重啟服務(wù)器,刷新瀏覽器將會看到

這是一個html from:https://litets.com
8.靜態(tài)文件

上面我們已經(jīng)成功輸出了一段html代碼,并且成功展示。大家都知html的美化需要依靠css,
css寫法有兩種:內(nèi)聯(lián)式和外聯(lián)式。內(nèi)聯(lián)就不用多說,直接寫在html同文件里面就可以了,現(xiàn)在我們使用外聯(lián)文件改怎么辦呢?

在quick目錄下新建static/css/style.css文件。

.desc {
    color: red;
}


然后修改index.html


{% load static %}


    
    Title

    



    
這是一個html from:https://litets.com

刷新瀏覽器,將會看到字變成紅色了。

9.接收用戶數(shù)據(jù),處理后返回

修改index.html文件

這是一個html from:https://litets.com
{% csrf_token %} 用戶名:
密碼:
{% if users %} {% for user in users %} {% endfor %}
序號 用戶名 密碼
{{ forloop.counter }} {{ user.username }} {{ user.password }}
{% endif %}

views.py修改

from django.shortcuts import render


def index(request):
    # 判斷是否是post請求
    if request.method == "POST":
        # 獲取到請求參數(shù), username的寫法,如果username不存在不會拋異常
        # password 會拋異常
        username = request.POST.get("username")
        password = request.POST["password"]

        # 業(yè)務(wù) 需求:
        users = []
        for x in range(0,3):
            users.append(
                {"username": "%s-%d" % (username, x), "password": "%s-%d" % (password, x)}
            )

        # 返回給用戶  模版中使用到的users就是這里傳遞進(jìn)去的
        return render(request, template_name="index.html", context={
            "users": users
        })
    return render(request, "index.html")

這樣我們就實(shí)現(xiàn)了一個基本的網(wǎng)站了,但是有一個問題,用戶傳遞過來的數(shù)據(jù)只是單次有效,無法持久化。
通常一個網(wǎng)站應(yīng)用到需要持久化數(shù)據(jù),比如文件、數(shù)據(jù)庫等。

10.數(shù)據(jù)庫持久化數(shù)據(jù)

我們打開DjangoQuick目錄下的setting.py找到DATEBASES
默認(rèn)項(xiàng)目使用sqlite3最為數(shù)據(jù)庫。還支持 MySQL, PostgreSQL等

可用的引擎有:

"django.db.backends.sqlite3"
"django.db.backends.postgresql"
"django.db.backends.mysql"
"django.db.backends.oracle"

Mysql的設(shè)置:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "test", # 數(shù)據(jù)庫名稱,
        "HOST": "localhost", # 主機(jī)地址
        "USER": "user", # 數(shù)據(jù)庫用戶
        "PASSWORD": "pwd", # 密碼
        "PORT": 3306 # mysql的端口默認(rèn)3306
    }
}

這里我們使用默認(rèn)的sqlite3。

打開quick下的models.py

from django.db import models

class User(models.Model):
    
    username = models.CharField(max_length=25)
    password = models.CharField(max_length=18)

我們增加了兩個字段username和password,Django默認(rèn)支持orm。
同步數(shù)據(jù)庫,在終端中執(zhí)行

$ python3 manage.py makemigrations


此命令執(zhí)行完成后,會在migrations下生產(chǎn)記錄models變動的記錄。

此時數(shù)據(jù)庫并未變動,然后執(zhí)行

$ python3 manage.py migrate

這樣models的變動,立即同步到數(shù)據(jù)庫中。

修改views.py

from django.shortcuts import render

from .models import User

def index(request):
    # 判斷是否是post請求
    if request.method == "POST":
        # 獲取到請求參數(shù), username的寫法,如果username不存在不會拋異常
        # password 會拋異常
        username = request.POST.get("username")
        password = request.POST["password"]
        
        u = User(username=username, password=password)
        u.save()

    # 業(yè)務(wù) 需求:查詢出所有數(shù)據(jù)
    users = User.objects.all()
    
    # 返回給用戶
    return render(request, template_name="index.html", context={
        "users": users
    })

這樣添加用戶后就會持久報錯了,即使關(guān)閉瀏覽器,重新訪問數(shù)據(jù)也是存在的。

我們查看db.sqlite3文件查看里面的數(shù)據(jù)

原文鏈接

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43613.html

相關(guān)文章

  • Godaddy域名續(xù)費(fèi)貴!Godaddy域名轉(zhuǎn)移遷出到Namesilo域名服務(wù)商圖文教程

    摘要:慢慢要把域名域名轉(zhuǎn)走了。阿里云證書有免費(fèi)申請的途徑嗎阿里云網(wǎng)站的導(dǎo)航欄產(chǎn)品安域名解析教程域名解析的圖文教程域名解析教程域名解析的圖文教程是國外域名注冊商,是一家認(rèn)可的域名注冊和網(wǎng)站托管公司,近年來域名godaddy域名續(xù)費(fèi)貴怎么辦?godaddy真是坑爹,安全性不高,價格也越來越貴。以前的COM域名優(yōu)惠碼全部失效,好不容易找到一個優(yōu)惠碼,也比原來的要貴,比國內(nèi)的還是貴了,真是坑爹。慢慢要把g...

    番茄西紅柿 評論0 收藏2637
  • 阿里云服務(wù)器購買流程詳細(xì)2019更新(圖文教程

    摘要:四服務(wù)器使用教程購買完成后如何使用可以參考官方文檔阿里云服務(wù)器使用教程匯總云服務(wù)器使用也十分簡單,以搭建網(wǎng)站為例,無非是配置環(huán)境自定義安全組等操作,參考官方文檔即可,從等都有,最后感謝大家對云吞鋪?zhàn)拥年P(guān)注。阿里云服務(wù)器購買頁面云吞鋪?zhàn)诱J(rèn)為過于復(fù)雜,尤其是對于第一次購買云服務(wù)器的新手來講,2019年了,思來想去云吞鋪?zhàn)記Q定寫一篇服務(wù)器購買流程的圖文教程: 阿里云服務(wù)器購買流程 如何購買ECS云...

    lingdududu 評論0 收藏0
  • 超詳細(xì)Dkhadoop虛擬機(jī)安裝圖文教程

    摘要:超詳細(xì)虛擬機(jī)安裝圖文教程前兩天看到有人留言問在什么情況下需要部署,我給的回答也很簡單,就是在需要處理海量數(shù)據(jù)的時候才需要考慮部署。圖圖為虛擬機(jī)命名,如下圖,命名按照自己喜歡即可,點(diǎn)擊下一步進(jìn)行處理器配置。 超詳細(xì)Dkhadoop虛擬機(jī)安裝圖文教程前兩天看到有人留言問在什么情況下需要部署hadoop,我給的回答也很簡單,就是在需要處理海量數(shù)據(jù)的時候才需要考慮部署hadoop。關(guān)于這個問題...

    ChanceWong 評論0 收藏0
  • 寶塔Linux面板免費(fèi)Nginx防火墻安裝使用詳細(xì)圖文教程

    摘要:所以,本文中分享關(guān)于寶塔面板免費(fèi)防火墻安裝使用的圖文教程。在你寶塔面板軟件商店第三方應(yīng)用免費(fèi)防火墻,點(diǎn)擊立即購買不用花錢,再點(diǎn)擊安裝,確定安裝。注意免費(fèi)防火墻,和現(xiàn)有的的防火墻只能安裝一個,支持系統(tǒng)烏班圖。寶塔Linux面板免費(fèi)nginx防火墻怎么樣?寶塔面板nginx免費(fèi)防火墻是寶塔服務(wù)器面板為用戶提供的免費(fèi)使用的網(wǎng)站防火墻,僅限于Nginx web服務(wù)器使用。 ? 眾所周知,國內(nèi)...

    GHOST_349178 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<