第一章 基礎(chǔ)知識(shí)回顧

django 基礎(chǔ)知識(shí)回顧

標(biāo)簽: djanjo


djanjo實(shí)戰(zhàn)環(huán)境搭建

  • 虛擬環(huán)境搭建

具體內(nèi)容詳見(jiàn)環(huán)境搭建


## env 倉(cāng)庫(kù)
pip install virtualenvwrapper-win

  • mysql 和 pycharm使用自行學(xué)習(xí)

django簡(jiǎn)單使用

  • django基礎(chǔ)知識(shí)
# 創(chuàng)建app

tool 工具中 run manage.py task

startapp appname


  • django基本目錄結(jié)構(gòu)
apps 項(xiàng)目工程

media 用戶上傳文件

log 日志文件

static 靜態(tài)文件

  • mysql 數(shù)據(jù)庫(kù)連接以及默認(rèn)表生成

驅(qū)動(dòng)地址



下載對(duì)應(yīng)驅(qū)動(dòng)

跳轉(zhuǎn)虛擬環(huán)境

pip install MySQL_python-1.2.5-cp27-none-win32.whl


更改數(shù)據(jù)庫(kù)驅(qū)動(dòng)

setting.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'edu_online',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1'
    }
}


django 基本表文件生成

makemigrations

migrate


  • django運(yùn)行原理

apps中 views 返回

def getform(request):

    return render(request,'message-form.html')

url 連接映射

utls.py
from message.views import getform

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^form/', getform)
]


模板+靜態(tài)文件地址設(shè)置
setting.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]



  • django model 的創(chuàng)建

- 創(chuàng)建model

# __*__ coding:utf-8 __*__

from __future__ import unicode_literals

from django.db import models

# Create your models here.

class UserMessage(models.Model):
    object_id = models.CharField(primary_key=True,max_length=50,verbose_name=u'主鍵',default="")
    name = models.CharField(max_length=64,verbose_name=u'名稱')
    email = models.EmailField(verbose_name=u'郵箱')
    word = models.CharField(max_length=512,verbose_name=u'留言')


    class Meta:
        verbose_name= u'用戶留言'

app注冊(cè)
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'message'
]

表結(jié)構(gòu)文件生成

makemigrations

migrate

model 實(shí)現(xiàn)增刪改查

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<form action="/form/" method="post" class="smart-green">
    <h1>留言信息
        <span>請(qǐng)留下你的信息.</span>
    </h1>
    <label>
        <span>姓名 :</span>
        <input id="name" type="text" name="name" class="error" placeholder="請(qǐng)輸入您的姓名"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>郵箱 :</span>
        <input id="email" type="email" value="" name="email" placeholder="請(qǐng)輸入郵箱地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>聯(lián)系地址 :</span>
        <input id="address" type="text" value="" name="address" placeholder="請(qǐng)輸入聯(lián)系地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>留言 :</span>
        <textarea id="message" name="message"  placeholder="請(qǐng)輸入你的建議"></textarea>
        <div class="error-msg"></div>
    </label>
    <div class="success-msg"></div>
    <label>
        <span>&nbsp;</span>
        <input type="submit" class="button" value="提交"/>
    </label>
    {% csrf_token %}
</form>
</body>
</html>

.smart-green {
    margin-left: auto;
    margin-right: auto;
    max-width: 500px;
    background: #F8F8F8;
    padding: 30px 30px 20px 30px;
    font: 12px Arial, Helvetica, sans-serif;
    color: #666;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
}

.smart-green h1 {
    font: 24px "Trebuchet MS", Arial, Helvetica, sans-serif;
    padding: 20px 0px 20px 40px;
    display: block;
    margin: -30px -30px 10px -30px;
    color: #FFF;
    background: #9DC45F;
    text-shadow: 1px 1px 1px #949494;
    border-radius: 5px 5px 0px 0px;
    -webkit-border-radius: 5px 5px 0px 0px;
    -moz-border-radius: 5px 5px 0px 0px;
    border-bottom: 1px solid #89AF4C;
}

.smart-green h1 > span {
    display: block;
    font-size: 11px;
    color: #FFF;
}

.smart-green label {
    display: block;
    margin: 0px 0px 5px;
}

.smart-green label > span {
    float: left;
    margin-top: 10px;
    color: #5E5E5E;
}

.smart-green input[type="text"], .smart-green input[type="email"], .smart-green textarea, .smart-green select {
    color: #555;
    height: 30px;
    line-height: 15px;
    width: 100%;
    padding: 0px 0px 0px 10px;
    margin-top: 2px;
    border: 1px solid #E5E5E5;
    background: #FBFBFB;
    outline: 0;
    -webkit-box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
    box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
    font: normal 14px/14px Arial, Helvetica, sans-serif;
}

.smart-green textarea {
    height: 100px;
    padding-top: 10px;
}

.smart-green .button {
    background-color: #9DC45F;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-border-radius: 5px;
    border: none;
    padding: 10px 25px 10px 25px;
    color: #FFF;
    text-shadow: 1px 1px 1px #949494;
}

.smart-green .button:hover {
    background-color: #80A24A;
}

.error-msg {
    color: red;
    margin-top: 10px;
}

.success-msg {
    color: #80A24A;
    margin-top: 10px;
    margin-bottom: 10px;
}
# -*- coding:utf-8 -*-
from django.shortcuts import render
from .models import UserMessage

# Create your views here.

def getform(request):


    # 查詢所有
    all_messages = UserMessage.objects.all()
    # 刪除所有
    all_messages.delete()
    for message in all_messages:
        name = message.name

    # 查詢單個(gè)
    all_messages =  UserMessage.objects.filter(name='xiaojinzi',address='anhui')
    for message in all_messages:
        # 刪除單個(gè)
        message.delete()
        name = message.name
        # 修改
        if name == 'xiaojinzi':
            message.address = '安徽'
            message.save()

    if request.method == "POST":
        name = request.POST.get("name")
        email = request.POST.get("email")
        message = request.POST.get("message")
        address = request.POST.get("address")
        user_message = UserMessage()
        user_message.name = name
        user_message.email = email
        user_message.message = message
        user_message.address = address
        user_message.object_id = 'xiaojinziya'
        user_message.save()

    return render(request,'message-form.html')
  • django templete 應(yīng)用

模板語(yǔ)言具體模板語(yǔ)言規(guī)范 django document


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<!--url函數(shù) 維護(hù)性強(qiáng)-->
<form action="{% url 'message_form' %}" method="post" class="smart-green">
    <h1>留言信息
        <span>請(qǐng)留下你的信息.</span>
    </h1>
    <label>
        <span>姓名 :</span>
        <!--后臺(tái)傳值接受-->
        <input id="name" type="text" name="name" class="error" value="{{ my_message.name }}" placeholder="請(qǐng)輸入您的姓名"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>郵箱 :</span>
        <input id="email" type="email" value="" name="email" placeholder="請(qǐng)輸入郵箱地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>聯(lián)系地址 :</span>
        <input id="address" type="text" value="" name="address" placeholder="請(qǐng)輸入聯(lián)系地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>留言 :</span>
        <textarea id="message" name="message"  placeholder="請(qǐng)輸入你的建議"></textarea>
        <div class="error-msg"></div>
    </label>
    <div class="success-msg"></div>
    <label>
        <span>&nbsp;</span>
        <input type="submit" class="button" value="提交"/>
    </label>
    {% csrf_token %}
</form>
</body>
</html>

urls
url(r'^form/', getform,name='message_form')

views

return render(request,'message-form.html',{
        'my_message':message
    })

  • 本篇博客原視頻博主[慕課在線教育平臺(tái)]
  • 本篇博客撰寫(xiě)人: XiaoJinZi 轉(zhuǎn)載請(qǐng)注明出處
  • 學(xué)生能力有限 附上郵箱: 986209501@qq.com 不足以及誤處請(qǐng)大佬指責(zé)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末湃缎,一起剝皮案震驚了整個(gè)濱河市饼丘,隨后出現(xiàn)的幾起案子羡洁,更是在濱河造成了極大的恐慌刷钢,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勤篮,死亡現(xiàn)場(chǎng)離奇詭異都毒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)碰缔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)账劲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人金抡,你說(shuō)我怎么就攤上這事瀑焦。” “怎么了梗肝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蝠猬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我统捶,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任喘鸟,我火速辦了婚禮匆绣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘什黑。我一直安慰自己崎淳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布愕把。 她就那樣靜靜地躺著拣凹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恨豁。 梳的紋絲不亂的頭發(fā)上嚣镜,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音橘蜜,去河邊找鬼菊匿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛计福,可吹牛的內(nèi)容都是我干的跌捆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼象颖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼佩厚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起说订,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抄瓦,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后克蚂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體闺鲸,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年埃叭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摸恍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赤屋,死狀恐怖立镶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情类早,我是刑警寧澤媚媒,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站涩僻,受9級(jí)特大地震影響缭召,放射性物質(zhì)發(fā)生泄漏栈顷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一嵌巷、第九天 我趴在偏房一處隱蔽的房頂上張望萄凤。 院中可真熱鬧,春花似錦搪哪、人聲如沸靡努。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惑朦。三九已至,卻和暖如春漓概,著一層夾襖步出監(jiān)牢的瞬間漾月,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工垛耳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栅屏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓堂鲜,卻偏偏與公主長(zhǎng)得像栈雳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缔莲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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