Django学习记录
生活随笔
收集整理的這篇文章主要介紹了
Django学习记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
粗粗看完Tango With Django,對于Django走馬觀花看了一遍,記錄下來方便以后總結使用。
首先
創建工程 django-admin.py startproject testsite001 工程和應用不同,一個工程中可以包含多個應用,默認情況下,啟動工程之后,不加前綴的URL都會指向工程的目錄,而非應用目錄 啟動服務 python manage.py runserver 8000 testsite001/urls.py ?負責所有URL路由 創建應用 python manage.py startapp <appname> testsite001/testsite001/views.py 定義主app的顯示 settings.py 定義工程設置選項 INSTALLED_APPS ? 添加后續app west/urls.py 定義app路由 west/views.py 定義app顯示 同一個應用下添加多個URL路由的形式: urlpatterns = patterns( '',? url(r'^$', views.index, name='index'), url(r’about/', views.about, name='about'), ) views.py中各頁面的返回值HttpResponse中,可以直接寫html,能夠被直接解析。 直接引用模板可以通過views中的頁面方法的render方法引用,render方法的第二個參數可以是字典,定義模板中的變量對應的值。 模板中html部分,需要渲染的變量定義形式為:{{ <varNm> }} Django還支持引用靜態媒體,在主工程目錄下的settings.py中定義STATIC_URL和STATICFILES_DIRS,定義靜態文件的目錄,可以直接通過url中的目錄結構訪問靜態文件目錄的內容:localhost:8000/static/images/rango.jpg html文件中引用靜態媒體時,需要在DOCTYPE定義之后引入staticfiles,后續的html代碼才能夠引用靜態媒體 <% load staticfiles %> html中引用static目錄下內容: <img src=“{% static “images/rango.jpg" %}” alt=“Picture of Rango” /> 可以用類似方式在頁面上引入css和js代碼 settings.DATABASES 定義數據庫設置,可以設置數據庫類型、驅動、用戶名、密碼、IP以及端口等。 Django通過model定義表結構,model中每一個繼承了models.Model的類都是一張表,類中的屬性就算表中的列,屬性不需要限制為self。定義屬性常用的數據類型有: ChartField(max_length=) 字符串類型、URLField 存儲URL,同樣有max_length、’IntegerField’ 整數、DateField 存儲datetime.date 每個屬性都可設置默認值 default= Django定義了模型/表的連接方式: ForeignKey 1對多關系的字段類型 OneToOneField 1對1關系字段類型 ManyToManyField 多對多關系字段類型 創建數據庫 python manage.py syncdb 設置管理員 python manage.py createsuperuser 更改模型或者表 python manage.py makemigrations 應用更改 python manage.py migrate 新定義的模型需要在管理員界面注冊 app/admin.py admin.site.register(Category) admin.site.register(Page) 對于已經定義的表結構,可以通過Django在代碼中直接操作 from rango.models import Category, Page Category.objects.all() ?返回已經定義的全部Category數據 Page.objects.filter(*args, **kwargs) 返回符合輸入條件的Page數據 html頁面需要的數據需要在view中的頁面方法里定義,通過render傳給網頁,這只是靜態方法,對于ajax,應該還有可以動態渲染的方法。 urls.py中可以利用正則表達式從url中獲取需要的參數或其他數據,將獲取的數據賦值給指定的變量,可以傳遞給views中的對應頁面方法,通過這種方式完成類似url的復雜映射。 urls.py中: urlpatterns = […, url(r'category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category'), ] ?P<vari_name> 的形式,將正則捕獲的值傳遞給指定變量,再傳給指定的views方法 views.py中: def category(request, category_name_slug): ... 對應的views方法中,可以通過同名的變量獲取urls中捕獲的數據。 在URL的正則表達式中如果使用了括號捕獲但是沒有指定變量,則會按照捕獲順序,作為參數依次傳入對應的view方法中去 Django的HTML模板中,引用render變量使用的格式是{{ var_name }},模板控制語句的格式是{% if something %} … {% else %}… {% endif %} 注釋格式為{# <a href=“#”>Anchor</a> #} Django中POST請求不能自動處理url末尾的斜杠,因此對于POST請求的url定義,無論是在模板中還是urls.py中,都需要注意末尾的斜杠互相對應 Django中的表單form django中有form類,在頁面上定義了form之后,可以通過指定form對象用于頁面渲染的方式,使用form中的數據,或者在頁面上定義form標簽的action,通過submit方式提交表單內容。 Django中的form支持csrf令牌,可以在一定程度上防止偽造請求。轉載于:https://www.cnblogs.com/harelion/p/5398161.html
總結
以上是生活随笔為你收集整理的Django学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio插件提升工作
- 下一篇: Mellanox 8亿美元收购EZchi