Day/2
模型:
mysql數(shù)據(jù)庫服務端軟件安裝:sudo apt-get install mysql-server
mysql數(shù)據(jù)庫命令行客戶端安轉:sudo apt-get install mysql-client
數(shù)據(jù)庫操作基本流程:
-
創(chuàng)建數(shù)據(jù)庫 (create database 數(shù)據(jù)名稱 charset=utf8;)
-
使用數(shù)據(jù)庫 (use 數(shù)據(jù)庫名稱)
-
創(chuàng)建表
ORM框架:“o”——》類對象 “m”——》映射 “r”——》關系
數(shù)據(jù)庫的表——》類
數(shù)據(jù)庫中的行——》對象
數(shù)據(jù)庫中的字段——》屬性
“重點內(nèi)容”:
-
定義模型時,必須繼承Model類
django只需在model內(nèi)編寫自動創(chuàng)建
class BookInfo(models.Model): """ 1. 主鍵會自動生成 """ name = models.CharField(max_length=10) # 最大長度 class PeopleInfo(models.Model): # 人名 name = models.CharField(max_length=10) # 性別 gender = models.BooleanField() # 外鍵 book = models.ForeignKey(BookInfo)
-
定義屬性時,語法格式:屬性=models.字段類型(選項)
django字段類型:https://www.cnblogs.com/jingzaixin/p/8670094.html
-
需要執(zhí)行兩句指令:
在pycharm的命令行中輸入指令
一、生成遷移文件
python manage.py makemigrations
二、同步到數(shù)據(jù)庫中
python manage.py migrate
-
-
登錄站點http://127.0.0.1:8000/admin
第一次登錄后是無賬號無密碼的,需要手動創(chuàng)建,密碼長度要8位,切包含數(shù)字和字母
指令: python manage.py createsuperuser
注冊模型類:admin.site.register(模型類) 在admin.py文件中
from django.contrib import admin from users.models import BookInfo,PeopleInfo # Register your models here. # 注冊書籍模型類 admin.site.register(BookInfo) # 注冊人物模型類 admin.site.register(PeopleInfo)
遇到一個問題,在后臺新增數(shù)據(jù)時,生成的效果都是BookInfo object,無法區(qū)分!
方法:指定打印出str()函數(shù)
def __str__(self): # 重寫str函數(shù),動態(tài)顯示示例屬性的值 return self.name
總結:
-
設置后臺中文顯示,注冊管理員賬戶
-
注冊模型表
-
重寫str函數(shù)
-
視圖: views.py文件
http://127.0.0.1:8000/users/index運行
視圖的概念:就是一個寫在views.py中的python函數(shù)
特點:
-
視圖函數(shù)必須要有一個參數(shù),接收request請求對象,且寫在第一個
-
視圖函數(shù)必須要有響應對象
注意:先從demo查到urls.py,在從urls.py查到users子應用,還能找得到,就找子應用里的urls.py查到views.py
demo中的urls.py
from django.conf.urls import url, include
from django.contrib import admin
# 路由
urlpatterns = [
url(r'^admin/', admin.site.urls),
# include函數(shù)
url(r'^users/', include('users.urls')),
]
子應用users里的urls.py
from django.conf.urls import url
from users.views import index
urlpatterns = [
url(r'^index/', index),
]
子應用users中的views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
# 定義一個視圖函數(shù)
def index(request):
return HttpResponse('這是第一次寫視圖函數(shù)')
路由URL:
-
查找規(guī)則從上至下,會有屏蔽效應,解決的方法:正則內(nèi)最后加個$符號即可,但是一般是在子路由里加,工程總路由不加。
urlpatterns = [ url(r'say$', views.say), url(r'sayhello$', views.sayhello), ]
-
urlpatterns 是固定寫法,不能更改
模板:
作用:將前端的代碼抽離出來,定義在模板中,降低耦合度
“模板的使用步驟”:
-
創(chuàng)建模板,在子應用的同級目錄下,文件夾的名字固定寫法:templates
-
設置模板的路徑
-
模板接收視圖傳入的數(shù)據(jù)
-
模板處理數(shù)據(jù)文章來源:http://www.zghlxwxcb.cn/news/detail-452680.html
在settings配置文件中‘template’的DIRS中添加os.path.join(BASE.DIR, ‘templates’)表示固定到指定文件下尋找。文章來源地址http://www.zghlxwxcb.cn/news/detail-452680.html
到了這里,關于Python之后端Django(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!