国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python web開發筆記五:Django開發進階一

Java_oldboy / 2262人閱讀

摘要:在第一次執行循環時該變量為是一個布爾值在最后一次執行循環時被置為。注冊自定義修改顯示字段管理后臺默認顯示,在中添加返回值方法,修改顯示效果。

理解上下文
render(request,x.html,context)
request:請求的固定寫法。
x.html:模板,需要填補丁的模板。
context:上下文,填充模板的補丁。
模板的使用流程

寫模板,創建Template對象,用模板語言進行修改。

創建Context,context是一組字典,用來傳遞數據給Template對象。

調用Template對象的render()方法傳遞context來填充模板。

創建并使用模板

多帶帶創建templates、staitc文件夾,將之前寫的前端文件如何放入Django項目。

網頁放入tempaltes,所有的靜態文件放入static中。(靜態文件是指網站中的 js, css, 圖片,視頻等)

修改setting,TEMPLATES,DIRS:[os.path.join(BASE_DIR,"templates").replace("","/")], (注意逗號不能夠少)

html最上方加入{% load staticfiles %},在模板中引入靜態文件,修改模板中的固定地址改為動態地址。({% static "css/semantic.css" %})

模板語言

模板語言分為:模板變量,模板標簽,模板過濾器。

模板變量:

            
{{ value }},{{ Person.name }}

模板標簽:

{% for item in list %}
    {{ item }}
{% endfor %}

{% for key, value in dict.items %}
    {{ key }}: {{ value }}
{% endfor %}

{% if today_is_weekend %}
    

Welcome to the weekend!

{% else %}

Get back to work.

{% endif %}

注:標簽可以多重進行嵌套。

其他:

{% forloop.first %}是一個布爾值。在第一次執行循環時該變量為True
{% forloop.last %}是一個布爾值;在最后一次執行循環時被置為True。

模板過濾器:

{{ value|default:"nothing" }} 如果為空則顯示nothing的樣式。
{{ value|truncatewords:200 }} 只顯示前200個字符。
{{ name|lower }} 功能是轉換文本為小寫。
案例

使用 django 的"日期字段"給每篇文章添加類似圖中的一個發布日期,格式是「2016-11-05」

model增加:
class Aritcle(models.Model):
    date = models.DateField(auto_now=True)

html增加:
{{ article.date|date:"Y-m-d" }}
模板繼承 extends標簽

定義一個父模板為base.html,寫出HTML的骨架,將需要子塊修改的地方用{% block %}{% endblock %}標出。
子模板使用{% extends "base.html" %}將內容填寫進這些空白的內容塊。
模板繼承允許你建立一個基本的”骨架”模板, 它包含你所有最常用的站點元素并定義了一些可以被子模板覆蓋的block。
如果你需要在子模板中引用父模板中的 block 的內容,使用 “{{ block.super }}“ 變量.這在你希望在父模板的內容之后添加一些內容時會很有用.(你不必完全覆蓋父模板的內容.)

include標簽

{% include %}該標簽允許在(模板中)包含其它的模板的內容。
標簽的參數是所要包含的模板名稱,可以是一個變量,也可以是用單/雙引號硬編碼的字符串。
每當在多個模板中出現相同的代碼時,就應該考慮是否要使用 {% include %} 來減少重復。

stackoverflow問題:{% include %} vs {% extends %} in django templates?

Extending allows you to replace blocks (e.g. "content") from a parent template instead of including parts to build the page (e.g. "header" and "footer"). This allows you to have a single template containing your complete layout and you only "insert" the content of the other template by replacing a block.
If the user profile is used on all pages, you"d probably want to put it in your base template which is extended by others or include it into the base template. If you wanted the user profile only on very few pages, you could also include it in those templates. If the user profile is the same except on a few pages, put it in your base template inside a block which can then be replaced in those templates which want a different profile.

模板注釋

注釋使用{# #}注釋不能跨多行 eg: {# This is a comment #}

urls相關 urls中定義鏈接(三種)
Function views
Add an import:  from my_app import views
Add a URL to urlpatterns:  url(r"^$", views.home, name="home")

Class-based views
Add an import:  from other_app.views import Home
Add a URL to urlpatterns:  url(r"^$", Home.as_view(), name="home")

Including another URLconf
Import the include() function: from django.conf.urls import url, include
Add a URL to urlpatterns:  url(r"^blog/", include("blog.urls"))
url的name屬性

url(r"^add/$", calc_views.add, name="add"),
這里的name可以用于在 templates, models, views ……中得到對應的網址,相當于“給網址取了個名字”,只要這個名字不變,網址變了也能通過名字獲取到。

url正則表達式
url(r"^(?Pd{4})/(?Pd{1,2})/$","get_news_list",name="news_archive" )

在view的參數獲得 如:def index(request,year,month)

url的include用法
(r"^weblog/", include("mysite.blog.urls")), 
(r"^photos/", include("mysite.photos.urls")),

指向include()的正則表達式并不包含一個$(字符串結尾匹配符)。每當Django 遇到include()時,它將截斷匹配的URL,并把【剩余】的字符串發往被包含的 URLconf 作進一步處理。

創建使用后臺

使用django自帶的后臺,可以可視化管理后臺的數據。

創建超級管理員
python manage.py createsuperuser # 設置用戶名,密碼。
注冊自定義model
from models import People
admin.site.register(People)
修改顯示字段

管理后臺默認顯示People Obejct,在model中添加返回值方法,修改顯示效果。

  def __str__(self):
      return self.name 
修改后臺密碼的方法
  python manage.py createsuperuser --username admin
  python manage.py changepassword admin
admin顯示自定義字段
  from django.contrib import admin
  from .models import Article

  class ArticleAdmin(admin.ModelAdmin):
      list_display = ("title","pub_date","update_time",)
    
  admin.site.register(Article,ArticleAdmin)
引入數據

Django ORM對數據庫進行操作,數據庫操作完成之后,記得要進行save()保存。

數據庫操作
Article.objects.all() 獲取表中所有對象
Aritcle.objects.get(pk=1) # Django中pk=primary key,和id等價。
Article.objects.filter(pub_date__year=2006) # 使用過濾器獲取特定對象
Article.objects.all().filter(pub_date__year=2006) #與上方一致

## 鏈式過濾
>>> Aritcle.objects.filter(
...     headline__startswith="What"
... ).exclude(
...     pub_date__gte=datetime.date.today()
... ).filter(
...     pub_date__gte=datetime(2005, 1, 30)
... )

Article.objects.create(author=me, title="Sample title", text="Test") #創建對象
Person.objects.get_or_create(name="WZT", age=23) # 防止重復很好的方法

Article.objects.all()[:5] 記錄前5條 
Person.objects.all().reverse()[:2] # 最后兩條
Person.objects.all().reverse()[0] # 最后一條

>>> Post.objects.filter(title__contains="title") # 包含查詢
[, ] 
# 注在title與contains之間有兩個下劃線字符 (_)。
# Django的ORM使用此語法來分隔字段名稱 ("title") 和操作或篩選器("contains")。

Post.objects.order_by("-created_date") # 對象進行排序,默認升序,添負號為降序。
Person.objects.filter(name__iexact="abc") # 不區分大小寫
Person.objects.filter(name__exact="abc") # 嚴格等于

Person.objects.filter(name__regex="^abc")  # 正則表達式
Person.objects.filter(name__iregex="^abc") # 不區分大小寫

Person.objects.exclude(name__contains="WZ")  # 排除
Person.objects.filter(name__contains="abc").exclude(age=23
 #找出名稱含有abc, 但是排除年齡是23歲的
QuerySet創建對象的四種方法
Author.objects.create(name="WeizhongTu", email="tuweizhong@163.com

twz = Author(name="WeizhongTu", email="tuweizhong@163.com")
twz.save()

twz = Author()
twz.name="WeizhongTu"
twz.email="tuweizhong@163.com"

Author.objects.get_or_create(name="WeizhongTu", email="tuweizhon“)
# 返回值(object, True/False)
QuerySet是可迭代的
es = Entry.objects.all()
for e in es:
    print(e.headline)
檢查對象是否存在
Entry.objects.all().exists() 返回布爾值

拓展閱讀:
課堂操作內容文檔

備注
該筆記源自網易微專業《Python web開發》1.2節
本文由EverFighting創作,采用 知識共享署名 3.0 中國大陸許可協議進行許可。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38533.html

相關文章

  • Python

    摘要:最近看前端都展開了幾場而我大知乎最熱語言還沒有相關。有關書籍的介紹,大部分截取自是官方介紹。但從開始,標準庫為我們提供了模塊,它提供了和兩個類,實現了對和的進一步抽象,對編寫線程池進程池提供了直接的支持。 《流暢的python》閱讀筆記 《流暢的python》是一本適合python進階的書, 里面介紹的基本都是高級的python用法. 對于初學python的人來說, 基礎大概也就夠用了...

    dailybird 評論0 收藏0
  • Python測試開發Django和Flask框架的區別

    摘要:在談中框架和框架的區別之前,我們需要先探討如下幾個問題。通過大數據統計分析全球著名的網站對和這兩個框架的調查分析。從全球著名的代碼托管平臺上的和數量上分別為,分別為。 在談Python中Django框架和Flask框架的區別之前,我們需要先探討如下幾個問題。 一、為什么要使用框架? showImg(https://segmentfault.com/img/remote/14600000...

    B0B0 評論0 收藏0
  • Python爬蟲學習路線

    摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...

    liaoyg8023 評論0 收藏0
  • Python - 收藏集 - 掘金

    摘要:首發于我的博客線程池進程池網絡編程之同步異步阻塞非阻塞后端掘金本文為作者原創,轉載請先與作者聯系。在了解的數據結構時,容器可迭代對象迭代器使用進行并發編程篇二掘金我們今天繼續深入學習。 Python 算法實戰系列之棧 - 后端 - 掘金原文出處: 安生??? 棧(stack)又稱之為堆棧是一個特殊的有序表,其插入和刪除操作都在棧頂進行操作,并且按照先進后出,后進先出的規則進行運作。 如...

    546669204 評論0 收藏0
  • 我的第本 gitbook: Flask Web 開發筆記

    摘要:月份發布了第版,收到不少網友的良好建議,所以又抽空進行了完善,當然也拖了不少時間。本書主要介紹的基本使用,這也是我一開始在學習過程中經常用到的。第章實戰,介紹了如何開發一個簡單的應用。聲明本書由編寫,采用協議發布。 showImg(https://segmentfault.com/img/remote/1460000007484050?w=200&h=152); 書籍地址 head-f...

    KevinYan 評論0 收藏0

發表評論

0條評論

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