日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

django models索引_Django(生命周期、每部分详解、路由层)

發(fā)布時(shí)間:2025/3/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django models索引_Django(生命周期、每部分详解、路由层) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
https://www.zhihu.com/video/1248736141978927104

每日測(cè)驗(yàn)

""" 今日考題 1.什么是靜態(tài)文件,django靜態(tài)文件配置如何配置,如何解決接口前綴不斷變化,html頁(yè)面上路徑的引用需要反復(fù)修改的問題 2.request對(duì)象的方法有哪些,分別是干什么用的,請(qǐng)具體闡述細(xì)節(jié)及注意事項(xiàng) 3.django自帶的數(shù)據(jù)庫(kù)是什么,如何換成其他數(shù)據(jù)庫(kù)例如MySQL,如何配置更換 4.什么是django orm,如何使用django orm,數(shù)據(jù)庫(kù)遷移命令如何書寫 5.orm字段的增刪改查與數(shù)據(jù)的增查如何實(shí)現(xiàn) """

答案

1.什么是靜態(tài)文件,django靜態(tài)文件配置如何配置,如何解決接口前綴不斷變化,html頁(yè)面上路徑的引用需要反復(fù)修改的問題靜態(tài)文件就是之前寫好的js,css,img,框架其他的第三方文件先在項(xiàng)目中創(chuàng)建一個(gè)static文件夾,把bootstrap文件拷貝到項(xiàng)目中 在settings.py里面加上這些代碼用來配置靜態(tài)文件 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static') ]任它變化的解決方法: 在html文件中的head里面寫上下面的格式的代碼 {% load static %}<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.css' %}"><script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.js' %}"></script>2.request對(duì)象的方法有哪些,分別是干什么用的,請(qǐng)具體闡述細(xì)節(jié)及注意事項(xiàng)request.method 查看get還是post請(qǐng)求方式,返回str純大寫 request.GET 獲取用戶的get請(qǐng)求的數(shù)據(jù) request.GET.get() 獲取用戶的get請(qǐng)求列表中最后一個(gè)元素 request.Get.getlist() 獲取用戶的get請(qǐng)求的列表全部元素 request.POST 獲取用戶的post請(qǐng)求的數(shù)據(jù),不包括文件 request.POST.get() 獲取用戶的post請(qǐng)求列表中最后一個(gè)元素 request.POST.getlist() 獲取用戶的post請(qǐng)求的列表全部元素3.django自帶的數(shù)據(jù)庫(kù)是什么,如何換成其他數(shù)據(jù)庫(kù)例如MySQL,如何配置更換sqllit3 需要去settings.py文件中重寫DATABASES 具體重寫: DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'day60','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': 3306,'CHARSET': 'utf8'} }4.什么是django orm,如何使用django orm,數(shù)據(jù)庫(kù)遷移命令如何書寫Django的ORM就是對(duì)象關(guān)系映射去models.py創(chuàng)建一個(gè)類,繼承models.Model類,然后添加字段,然后敲數(shù)據(jù)庫(kù)遷移命令 數(shù)據(jù)庫(kù)遷移命令: python manage.py makemigrations 記錄 python manage.py migrate 更新數(shù)據(jù)庫(kù)5.orm字段的增刪改查與數(shù)據(jù)的增刪查改如何實(shí)現(xiàn)字段 增: Ⅰ:終端敲 Ⅱ:null=True Ⅲ:default=默認(rèn)值 改: 在模型類直接改,然后敲數(shù)據(jù)庫(kù)遷移命令 查: 直接看 刪: 注釋掉要?jiǎng)h掉的字段,然后敲數(shù)據(jù)庫(kù)遷移命令數(shù)據(jù) 查:models.類名.objects.filter(username=username)obj = models.User.objects.filter(username=username).first() 增:models.User.objects.filter().create(username=username, password = password) 刪: models.User.object.filter().delete() 改: modesl.User.object.filter().upadte(username=username, password = password)

內(nèi)容回顧

  • 靜態(tài)文件配置
""" 在瀏覽器窗口輸入url之所以能夠訪問到對(duì)應(yīng)的資源是因?yàn)楹蠖颂崆伴_設(shè)了該資源的訪問接口我們習(xí)慣將html文件存放在templates文件夾下 我們習(xí)慣將靜態(tài)文件存放在static文件夾下靜態(tài)文件網(wǎng)站已經(jīng)寫好的 活著是第三方現(xiàn)成的代碼 直接拷貝使用css文件 js文件 img文件 第三方組件static文件夾內(nèi)還會(huì)創(chuàng)建幾個(gè)文件夾cssjsimg第三方django不會(huì)自動(dòng)幫你創(chuàng)建static文件夾需要你自己手動(dòng)創(chuàng)建 """ STATIC_URL = '/static/' # 訪問靜態(tài)文件的令牌# 靜態(tài)文件配置 settings.py STATICFILES_DIRS = [ # 令牌持有者可以訪問的文件路徑os.path.join(BASE_DIR,'static'),os.path.join(BASE_DIR,'static1'),os.path.join(BASE_DIR,'static2'), ] """ 查找順序就是從上往下依次查找,查找到一個(gè)就不會(huì)繼續(xù)往下找了所以可能會(huì)出現(xiàn)替換的情況 """# 令牌動(dòng)態(tài)解析 <link href="/static/a.txt"></link> {% load static %} <link href="{% static 'a.txt' %}"></link>
  • request對(duì)象方法
# 登陸功能# form表單action三個(gè)參數(shù)寫法request.method # 獲取當(dāng)前請(qǐng)求方式 全大寫的字符串request.GET # 獲取url問好后面攜帶的參數(shù).get() 列表最后一個(gè)元素.getlist() 拿整個(gè)列表 request.POST # 獲取post請(qǐng)求提交過來的普通鍵值對(duì)(不包含文件).get() 列表最后一個(gè)元素.getlist() 拿整個(gè)列表 """ 前期我們?cè)诔痙jango后端提交post請(qǐng)求的是時(shí)候要先去配置文件中注釋一行代碼 MIDDLEWARE = [# csrf... ] """def index(request):if request.method == 'POST':return HttpResponse('post')return HttpResponse('get')
  • pycharm鏈接數(shù)據(jù)庫(kù)
# 找到pycharm database選項(xiàng)(三個(gè)地方查找)# 選取對(duì)應(yīng)的數(shù)據(jù)庫(kù) 下載對(duì)應(yīng)的驅(qū)動(dòng) """ 明明鏈接上了數(shù)據(jù)庫(kù) 但是看不到表無法操作 這個(gè)時(shí)候你只需要將剛剛創(chuàng)建的鏈接刪除 重新鏈接一次即可 """
  • django鏈接MySQL
# 1.配置文件中配置 DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'day60','USER':'root','PASSWORD':'admin123','HOST':'127.0.0.1','PORT':3306,'CHARSET':'utf8'} }# 2.init文件指定pymysql import pymysql pymysql.install_as_MySQLdb()
  • django orm(重要)
""" orm不會(huì)幫你創(chuàng)建庫(kù) 只能創(chuàng)建到表的層面 需要你自己提前創(chuàng)建好庫(kù) """ # 對(duì)象關(guān)系映射 表 類 記錄 對(duì)象 數(shù)據(jù) 對(duì)象屬性/方法 """ 能夠讓一個(gè)不會(huì)sql語(yǔ)句的python程序員也能夠簡(jiǎn)單快捷的操作數(shù)據(jù)庫(kù),極大的提升開發(fā)效率 """# 去應(yīng)用下的models.py中書寫模型類# 類 模型類# 表 模型表class UserInfo(models.Model):# 當(dāng)你沒有創(chuàng)建主鍵字段的時(shí)候orm會(huì)自動(dòng)幫你創(chuàng)建一個(gè)名為id的主鍵字段uid = models.AutoField(primary_key=True)# uid int primary key auto_incrementusername = models.CharField(max_length=32)# username varchar(32) CharField字段一定要書寫max_length參數(shù)password = models.IntegerField()# password int **************************數(shù)據(jù)庫(kù)遷移命令***************************** 1.python3 manage.py makemigrations# 將操作記錄到小本本上(migrations文件夾內(nèi)) 不能真正的直接操作數(shù)據(jù)庫(kù) 2.python3 manage.py migrate# 將操作真正的同步到數(shù)據(jù)庫(kù)中 """只要在models中書寫了跟數(shù)據(jù)庫(kù)相關(guān)的代碼 就必須要重新執(zhí)行上述兩條命令"""# pycharm簡(jiǎn)單快捷輸入toolsrun manage.py task自動(dòng)提示 *******************************************************************
  • 簡(jiǎn)單的orm語(yǔ)句
# 字段的增刪改查# 增1.終端里面自己加默認(rèn)值2.null=True3.default='666'# 刪注釋代碼執(zhí)行兩條命令 (然后收拾行李跑路走人)# 在操作models.py中的代碼的時(shí)候一定要細(xì)心# 改修改代碼執(zhí)行兩條命令# 數(shù)據(jù)的增查# 增from app01 import models1.create()user_obj = models.UserInfo.objects.create(**kwargs)# 改方法有一個(gè)返回值 就是當(dāng)前創(chuàng)建的數(shù)據(jù)對(duì)象本身2.對(duì)象.save()# 先生成一個(gè)類對(duì)象user_obj = models.User(**kwargs)# 對(duì)象調(diào)用save方法user_obj.save()# 查1.filter() # whereres = models.UserInfo.objects.filter(**kwargs)"""返回的結(jié)果是一個(gè)querySet對(duì)象 你可以把它看成是一個(gè)列表套數(shù)據(jù)對(duì)象 [數(shù)據(jù)對(duì)象1,數(shù)據(jù)對(duì)象2...]支持索引和切片操作 但是不支持負(fù)數(shù) 并且不推薦你使用索引.first()方法filter括號(hào)內(nèi)可以寫多個(gè)參數(shù) 查詢的時(shí)候默認(rèn)是and關(guān)系"""

今日內(nèi)容概要

  • django請(qǐng)求生命周期流程圖(重要)
  • 詳細(xì)的講django每一個(gè)部分的詳細(xì)內(nèi)容
  • 路由層(urls.py)
    • 無名分組
    • 有名分組
    • 反向解析

django請(qǐng)求生命周期流程圖(必會(huì))

# 每個(gè)人都要會(huì)畫 這個(gè)圖是你們后期復(fù)習(xí)django最好的一個(gè)梳理方式# 擴(kuò)展知識(shí)點(diǎn)"""緩存數(shù)據(jù)庫(kù)提前已經(jīng)將你想要的數(shù)據(jù)準(zhǔn)備好了 你來直接拿就可以提高效率和響應(yīng)時(shí)間當(dāng)你在修改你的數(shù)據(jù)的時(shí)候 你會(huì)發(fā)現(xiàn)數(shù)據(jù)并不是立刻修改完成的而是需要經(jīng)過一段時(shí)間才會(huì)修改博客園了解即可"""

路由層

路由匹配

# 路由匹配 url(r'test',views.test), url(r'testadd',views.testadd) """ url方法第一個(gè)參數(shù)是正則表達(dá)式只要第一個(gè)參數(shù)正則表達(dá)式能夠匹配到內(nèi)容 那么就會(huì)立刻停止往下匹配直接執(zhí)行對(duì)應(yīng)的視圖函數(shù)你在輸入url的時(shí)候會(huì)默認(rèn)加斜杠django內(nèi)部幫你做到重定向一次匹配不行url后面加斜杠再來一次 """ # 取消自動(dòng)加斜杠 settings.py里面寫上: APPEND_SLASH = False/True # 默認(rèn)是自動(dòng)加斜杠的urlpatterns = [url(r'^admin/', admin.site.urls),# 首頁(yè)url(r'^$',views.home),# 路由匹配url(r'^test/$',views.test),url(r'^testadd/$',views.testadd),# 尾頁(yè)(了解)url(r'',views.error), ]

無名分組

""" 分組:就是給某一段正則表達(dá)式用小括號(hào)擴(kuò)起來 """ url(r'^test/(d+)/',views.test)def test(request,xx):print(xx)return HttpResponse('test')# 無名分組就是將括號(hào)內(nèi)正則表達(dá)式匹配到的內(nèi)容當(dāng)作位置參數(shù)傳遞給后面的視圖函數(shù)

有名分組

""" 可以給正則表達(dá)式起一個(gè)別名 """ url(r'^testadd/(?P<year>d+)',views.testadd)def testadd(request,year):print(year)return HttpResponse('testadd')# 有名分組就是將括號(hào)內(nèi)正則表達(dá)式匹配到的內(nèi)容當(dāng)作關(guān)鍵字參數(shù)傳遞給后面的視圖函數(shù)

無名有名是否可以混合使用

""" 不能混用 但是同一個(gè)分組可以使用N多次 """# 單個(gè)的分組可以使用多次 url(r'^index/(d+)/(d+)/(d+)/',views.index), url(r'^index/(?P<year>d+)/(?P<age>d+)/(?P<month>d+)/',views.index),

反向解析

# 通過一些方法得到一個(gè)結(jié)果 該結(jié)果可以直接訪問對(duì)應(yīng)的url觸發(fā)視圖函數(shù)# 先給路由與視圖函數(shù)起一個(gè)別名url(r'^func_kkk/',views.func,name='ooo') # 反向解析# 后端反向解析from django.shortcuts import render,HttpResponse,redirect,reversereverse('ooo')# 前端反向解析<a href="{% url 'ooo' %}">111</a>

總結(jié)

以上是生活随笔為你收集整理的django models索引_Django(生命周期、每部分详解、路由层)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一区二区三区四区五区 | 少妇无码吹潮 | 欧美日韩一区二区三区在线播放 | 男人插女人的网站 | 91麻豆蜜桃 | 成人av影院在线观看 | 成人久久影院 | 69精品人妻一区二区三区 | 亚洲欧美色图在线 | 日本一级黄色 | 黄网站免费观看 | 国产精品ww| 亚洲国产精品视频在线 | 国产成人无码精品久久久性色 | 国产亚洲精品久 | 欧美精品久久久久久久免费 | 少妇xxxxxx| 欧美日韩八区 | 超碰caopor| 国产亚洲精品久久久久婷婷瑜伽 | 狠狠躁夜夜躁av无码中文幕 | 成年人观看视频 | 日本深夜福利 | 美女性生活视频 | 免费污视频在线观看 | 日本不卡高字幕在线2019 | 欧美成人极品 | 美女搞黄视频网站 | 精品在线视频一区二区 | 91狠狠爱 | 96免费视频 | 成人综合婷婷国产精品久久 | 人人爽人人爽人人爽人人爽 | 午夜伦理在线观看 | 青草视频在线观看免费 | 亚洲不卡视频在线观看 | 亚洲高潮无码久久 | 午夜影院体验区 | 手机在线永久免费观看av片 | 亚洲天堂小说 | 日韩三级黄色片 | 午夜av免费| 亚洲综合视频网 | av丁香| 不卡视频在线播放 | 免费亚洲网站 | 色偷偷人人澡人人爽人人模 | 日批在线观看 | 中文字幕免费av | 国产精品成人久久久久久久 | 波多野结衣中文字幕久久 | 国产91亚洲 | 熟妇高潮精品一区二区三区 | 精品欧美一区二区三区免费观看 | 亚洲黄色免费观看 | 久久国产精品久久久久久电车 | 国产一二三精品 | 欧美日韩精品网站 | 日本亚洲欧美在线 | 国产日韩精品久久 | 欧美日韩二区三区 | 中文字幕一区二区三区免费 | 色老头一区二区三区在线观看 | 国产稀缺真实呦乱在线 | www成人在线| 色窝窝无码一区二区三区 | 欧美性受xxx黑人xyx性爽 | 99爱免费| 老牛av一区二区 | 欧美性猛交xx乱大交 | 看黄色大片 | 色盈盈影院 | 日韩欧美亚洲国产精品字幕久久久 | 亚洲欧美综合在线观看 | 久久98| 91中文字幕 | 精品久久久久久久久久久久 | 成人一区二区三区在线 | 黄色在线视频播放 | 亚洲精品国产精品乱码不卡√香蕉 | 日本女优一区 | 日韩在线第一 | 性欧美另类 | 国产精品骚 | 国产黄色精品网站 | 香蕉中文网 | 免费看一级黄色大片 | 老子影院午夜伦不卡大全 | 97在线观看免费 | xxxx日韩| 日本少妇喂奶 | 国产99对白在线播放 | 男女日批免费视频 | 97在线精品视频 | 人物动物互动39集免费观看 | 人人澡人人澡人人澡 | 美女高潮视频在线观看 | 夜夜夜综合 | www国产黄色 |