Django筆記

1.新建環(huán)境
2.配置mysql
3.運(yùn)行manage.py makemaigrations,migrate 生成數(shù)據(jù)表
4.創(chuàng)建users app
5.定義users moudles
6.在users moudles中用到了image赘娄,需要pillow磅叛,所以pip安裝它
7.把users注冊(cè)到INSTALLED_APPS,并在settings中重載方法AUTH_USER_MODEL = 'users.UserProfile'
8.makemigrations users,migrate users
9.startapp courses 龄毡,給moudels增添內(nèi)容
10.startapp organization纪吮,給moudels增添內(nèi)容

  1. startapp operation荒勇,給moudels增添內(nèi)容
    12.注冊(cè) 'courses','organization','operation'
    13.makemigrations,migrate
    14.創(chuàng)建apps python package盼砍,并把四個(gè)app拖動(dòng)到這里面來(lái)
    15.把a(bǔ)pps mark 為source root
    16.把a(bǔ)pps 增加到搜索目錄下 sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
    17.在cmd下測(cè)試是否可正常運(yùn)行 python manage.py runserver 0.0.0.0:8000
    后臺(tái)管理系統(tǒng)
    特點(diǎn)
    1.權(quán)限管理
    2.少前端樣式
    3.快速開(kāi)發(fā)

1.新建超級(jí)用戶 createsuperuser
jeff
admin123
2.修改語(yǔ)言時(shí)區(qū) 存儲(chǔ)時(shí)間(修改為False后再數(shù)據(jù)庫(kù)保存數(shù)據(jù)時(shí)就為本地時(shí)間尘吗,否則為UTC時(shí)間
settings-LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Shanghai' USE_TZ = False
3.將UserProfile注冊(cè)進(jìn)admin管理后臺(tái)users-admin.py,并寫(xiě)一個(gè)管理器UserProfileAdmin
from .models import UserProfile
class UserProfileAdmin(admin.ModelAdmin):
pass
admin.site.register(UserProfile, UserProfileAdmin)

  1. 在settings中添加以下內(nèi)容,以修復(fù)1452, 'Cannot add or update a child row:
    a foreign key constraint fails

DATABASES = {
'default': {
...
"init_command": "SET foreign_key_checks = 0;",
},
}

添加xadmin

  1. pip install xadmin
  2. 在settings注冊(cè)'xadmin','crispy_forms'
  3. 把默認(rèn)的admin指向xadmin浇坐,urls.py 這樣就完成了admin的替換
  4. 注銷掉原來(lái)users-admin.py中的admin注冊(cè)方式
  5. 把a(bǔ)dmin中的表同步過(guò)來(lái) makemigrations
  6. 下載xadmin源碼摇予,在項(xiàng)目根目錄下創(chuàng)建文件夾extra_apps,把下載的源碼中xadmin文件夾放進(jìn)去
    再把extra_apps mark為source root
  7. 卸載xadmin pip uninstall xadmin
  8. 發(fā)生ImportError: No module named xadmin吗跋,把extra_apps 增加到搜索目錄下

users app的moudel注冊(cè)

  1. xadmin會(huì)自動(dòng)搜尋每個(gè)app下adminx文件
  2. 所以在users下新建adminx.py文件侧戴,將EmailVerifyRecordAdmin注冊(cè)進(jìn)users-adminx.py
  3. 在測(cè)試添加郵箱驗(yàn)證碼時(shí)IndexError at /xadmin/users/emailverifyrecord/add/
  4. 重載EmailVerifyRecord unicode方法
  5. 在郵箱驗(yàn)證碼中自定義顯示的列,修改注冊(cè)的users-adminx.py EmailVerifyRecordAdmin
    list_display = ['code', 'email', 'send_type', 'send_time']
  6. 增加查找功能search_fields = ['code', 'email']
  7. 增加過(guò)濾器功能list_filter=['code', 'email', 'send_type', 'send_time']

將各個(gè)moudel注冊(cè)到xadmin中

  1. 在courses下新建adminx跌宛,把各moudle注冊(cè)到xadmin中
  2. 指定搜索外鍵的字段酗宋,在名稱中添加雙下劃線,course__name
  3. 重復(fù)以上操作把各個(gè)moudel加進(jìn)來(lái)

管理面板收起app導(dǎo)航欄疆拘,添加主題蜕猫,全局配置名稱

  1. 在users-adminx.py中添加
    class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True

class GlobalSetting(object):
site_title = '幕學(xué)后臺(tái)管理系統(tǒng)'
site_footer = '幕學(xué)在線網(wǎng)'
menu_style = 'accordion'

app名稱改為中文

  1. 在apps下的每個(gè)app中apps.py文件中添加中文名稱
  2. init加上引用。
    在每個(gè)app init.py 添加變量default_app_config

第六章

  1. 在根目錄下新建static文件夾哎迄,將靜態(tài)文件復(fù)制到此目錄下
  2. 在urls中配置回右,以處理靜態(tài)文件
  3. 在settings中添加靜態(tài)文件存放路徑隆圆,修改index.html中css,js引用路徑
  4. 將login頁(yè)面添加到urls中翔烁,注意根目錄下的文件如login前不需要加/

用戶登錄

  1. users-views.py 添加login登錄邏輯
  2. 默認(rèn)方式為用戶名登錄渺氧,添加郵箱登錄方式
    在settings重載變量
    AUTHENTICATION_BACKENDS = (
    'users.views.CustomBackend',
    )
    并在views中定義CustomBackend

session 和cookie
用戶注冊(cè)

  1. 在views定義注冊(cè)RedisterView,在urls中設(shè)置RedisterView
  2. 把注冊(cè)頁(yè)面放到根目錄下
  3. 修改 register.html 中css js的引用路徑
    例如../css/login.css 修改為{% static 'css/login.css' %}
    這樣會(huì)根據(jù)settings中的配置STATIC_URL = '/static/'自動(dòng)配置蹬屹,
    以后變更地址就只需修改STATIC_URL
  4. 在虛擬環(huán)境中安裝注冊(cè)碼插件 captcha
  5. 按照captcha 說(shuō)明進(jìn)行配置
  6. makemigrations migrate

用戶注冊(cè)

  1. 驗(yàn)證輸入
    取出用戶名侣背,密碼
  2. 實(shí)例化UserProfile
  3. 給UserProfile的實(shí)例賦值username,email
  4. 密碼加密
  5. 保存進(jìn)數(shù)據(jù)庫(kù)
    給郵箱發(fā)送激活鏈接
    1.在apps下新建package utils慨默,用來(lái)存放郵箱驗(yàn)證模塊
  6. 定義send_register_email
    在鏈接里加上后臺(tái)生成的隨機(jī)字符串
    用戶在點(diǎn)擊鏈接時(shí)贩耐,把加上的隨機(jī)字符串取出來(lái)
    然后在數(shù)據(jù)庫(kù)中去查詢,存在就激活厦取,不存在就報(bào)錯(cuò)
  7. 處理用戶激活
    4.判斷注冊(cè)郵箱是否已存在

找回密碼

詳情頁(yè)
https://github.com/xinghezhao/MxOnline.git
https://github.com/xinghezhao/MxOnline.git

總結(jié)

  1. 使用xadmin代替admin做為后臺(tái)管理系統(tǒng)
  2. 登錄潮太,注冊(cè),找回密碼
  3. 課程機(jī)構(gòu)功能:機(jī)構(gòu)列表虾攻,機(jī)構(gòu)詳情頁(yè)消别,咨詢提交
  4. 課程功能:課程列表,課程詳情頁(yè)
  5. 講師:講師列表台谢,講師詳情頁(yè)
  6. 個(gè)人中心功能: 用戶學(xué)信息修改寻狂,全局搜索

pythonanywhere superuser jeff 120880127p

EMAIL_HOST = 'smtp.sina.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'djangomuke@sina.com'
EMAIL_HOST_PASSWORD = '120880127s'
EMAIL_USE_TLS = False
EMAIL_FROM = 'djangomuke@sina.com'

EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = "Jeff.xxnn@gmail.com"
EMAIL_HOST_PASSWORD = 'mvcwrcnovxdfakeq'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

EMAIL_FROM = 'Jeff.xxnn@gmail.com'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朋沮,隨后出現(xiàn)的幾起案子蛇券,更是在濱河造成了極大的恐慌,老刑警劉巖樊拓,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纠亚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡筋夏,警方通過(guò)查閱死者的電腦和手機(jī)蒂胞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)条篷,“玉大人骗随,你說(shuō)我怎么就攤上這事「疤荆” “怎么了鸿染?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)乞巧。 經(jīng)常有香客問(wèn)我涨椒,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任蚕冬,我火速辦了婚禮免猾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘囤热。我一直安慰自己猎提,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布赢乓。 她就那樣靜靜地躺著,像睡著了一般石窑。 火紅的嫁衣襯著肌膚如雪牌芋。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天松逊,我揣著相機(jī)與錄音躺屁,去河邊找鬼。 笑死经宏,一個(gè)胖子當(dāng)著我的面吹牛犀暑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烁兰,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼耐亏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了沪斟?” 一聲冷哼從身側(cè)響起广辰,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎主之,沒(méi)想到半個(gè)月后择吊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡槽奕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年几睛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粤攒。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡所森,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夯接,到底是詐尸還是另有隱情必峰,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布钻蹬,位于F島的核電站吼蚁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肝匆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一粒蜈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旗国,春花似錦枯怖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至寿冕,卻和暖如春蕊程,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驼唱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工藻茂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玫恳。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓辨赐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親京办。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掀序,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • Anacoda里創(chuàng)建環(huán)境: conda create --name django 切換環(huán)境 source acti...
    yangweigbh閱讀 685評(píng)論 0 50
  • 已經(jīng)同步到gitbook,想閱讀的請(qǐng)轉(zhuǎn)到gitbook: Django 1.10 中文文檔 This tutori...
    leyu閱讀 2,704評(píng)論 3 13
  • 第二章:視圖和URL 2.1第一個(gè)Django驅(qū)動(dòng)的頁(yè)面 頁(yè)面的內(nèi)容由視圖函數(shù)(view function)生成惭婿,...
    m風(fēng)滿樓閱讀 1,005評(píng)論 0 12
  • Django筆記 基礎(chǔ)部分 結(jié)構(gòu): URLs -->views --> models --> Templates ...
    fpk2014閱讀 242評(píng)論 0 2
  • 貓貓哭了森枪,分別倒計(jì)時(shí),我眼角里滿含淚水审孽,生怕貓貓感受得到县袱。珍惜在一起的日子,好好感激佑力,好好相處式散,愛(ài)你!
    聶一一閱讀 162評(píng)論 0 0