web框架之Django(一)

Python的WEB框架有Django、Tornado、Flask 等多種,Django相較與其他WEB框架其優勢為:大而全,框架本身集成了ORM、模型綁定、模板引擎、緩存、Session等諸多功能。

?基本配置


?

一、創建django程序

  • 終端命令:django-admin startproject sitename
  • IDE創建Django程序時,本質上都是自動執行上述命令

其他常用命令:

  python manage.py runserver 0.0.0.0
  python manage.py startapp appname
  python manage.py syncdb
  python manage.py makemigrations
  python manage.py migrate

  python manage.py createsuperuser

二、程序目錄

三、修改配置文件

1、數據庫

 1 DATABASES = {
 2     'default': {
 3     'ENGINE': 'django.db.backends.mysql',
 4     'NAME':'dbname',
 5     'USER': 'root',
 6     'PASSWORD': 'xxx',
 7     'HOST': '',
 8     'PORT': '',
 9     }
10 }
11     
12 # 由于Django內部連接MySQL時使用的是MySQLdb模塊,而python3中還無此模塊,所以需要使用pymysql來代替
13   
14 # 如下設置放置的與project同名的配置的 __init__.py文件中
15   
16 import pymysql
17 pymysql.install_as_MySQLdb() 

2、模版

1 TEMPLATE_DIRS = (
2         os.path.join(BASE_DIR,'templates'),
3     )

3.靜態文件

1 STATICFILES_DIRS = (
2         os.path.join(BASE_DIR,'static'),
3     )

路由系統


1、單一路由對應

1 url(r'^index$', views.index),

2、基于正則的路由

1 url(r'^index/(\d*)', views.index),
2 url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage),

3、添加額外的參數

1 url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}),

4、為路由映射設置名稱

url(r'^home', views.home, name='h1'),
url(r'^index/(\d*)', views.index, name='h2'),

設置名稱之后,可以在不同的地方調用,如:

  • 模板中使用生成URL ? ? {% url 'h2' 2012 %}
  • 函數中使用生成URL ? ??reverse('h2', args=(2012,)) ? ? ?路徑:django.urls.reverse
  • Model中使用獲取URL ?自定義get_absolute_url() 方法
class NewType(models.Model):caption = models.CharField(max_length=16)def get_absolute_url(self):"""為每個對象生成一個URL應用:在對象列表中生成查看詳細的URL,使用此方法即可!!!:return:"""# return '/%s/%s' % (self._meta.db_table, self.id)#from django.urls import reversereturn reverse('NewType.Detail', kwargs={'nid': self.id})

5、根據app對路由規則進行分類

url(r'^web/',include('web.urls')),

6、命名空間

a. project.urls.py

from django.conf.urls import url,includeurlpatterns = [url(r'^a/', include('app01.urls', namespace='author-polls')),url(r'^b/', include('app01.urls', namespace='publisher-polls')),
]

b. app01.urls.py

from django.conf.urls import url
from app01 import viewsapp_name = 'app01'
urlpatterns = [url(r'^(?P<pk>\d+)/$', views.detail, name='detail')
]

c. app01.views.py

def detail(request, pk):print(request.resolver_match)return HttpResponse(pk)

以上定義帶命名空間的url之后,使用name生成URL時候,應該如下:

  • v = reverse('app01:detail', kwargs={'pk':11})
  • {% url 'app01:detail' pk=12 pp=99 %}

django中的路由系統和其他語言的框架有所不同,在django中每一個請求的url都要有一條路由映射,這樣才能將請求交給對一個的view中的函數去處理。其他大部分的Web框架則是對一類的url請求做一條路由映射,從而是路由系統變得簡潔。

轉載于:https://www.cnblogs.com/now-playing/p/8284879.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281389.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281389.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281389.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

寫一個易于維護使用方便性能可靠的Hybrid框架(一)—— 思路構建

寫一個易于維護使用方便性能可靠的Hybrid框架&#xff08;二&#xff09;—— 插件化 寫一個易于維護使用方便性能可靠的Hybrid框架&#xff08;三&#xff09;—— 配置插件 前言 本來上一篇博文寫完&#xff0c;我就告訴自己&#xff0c;這是最后一篇&#xff0c;之后不再總結…

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

小編今日給大家帶來RACDisopsable&#xff0c;大家可能有部分人對這個會感覺到很陌生&#xff0c;那么我就用一句話來表達就是他可以幫我們取消訂閱。那么又會有人會對這個產生疑問了&#xff0c;我們什么時候需要用到這個取消訂閱了打個實際的例子來說吧&#xff0c;今天我在餓…

Computer

鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2196https://blog.csdn.net/shuangde800/article/details/9732825#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<cmath&…

智慧“昆明”在路上 未來充滿精彩

智慧城市是運用物聯網、云計算、大數據、移動互聯網、空間地理信息集成等新一代信息技術&#xff0c;促進城市規劃、建設、管理和服務智慧化的新理念和新模式。近年來&#xff0c;昆明市全面加快智慧城市建設&#xff0c;力爭通過三年的努力&#xff0c;打造區域信息輻射中心的…

《精讀 Mastering ABP Framework》教程發布

精讀《Mastering ABP Framework》學習總結&#xff0c;掌握軟件開發最佳實踐&#xff0c;構建可維護 .NET 解決方案。從 ABP Framework 框架中學習如何構建現代 WEB 應用程序。掌握 ABP Framework 框架ABP Framework 是一個完整的基礎架構&#xff0c;遵循軟件開發最佳實踐&…

C# 委托知識總結

1.什么是委托&#xff0c;為什么要使用委托 我正在埋頭苦寫程序&#xff0c;突然想喝水&#xff0c;但是又不想自己去掉杯水而打斷自己的思路&#xff0c;于是我就想讓女朋友去給我倒水。她去給我倒水&#xff0c;首先我得讓她知道我想讓她干什么&#xff0c;通知她之后我可以繼…

阿里云大學課程學習有獎征文活動現在開始

2019獨角獸企業重金招聘Python工程師標準>>> "學有所獲&#xff0c;分享為美"--阿里云大學課程學習有獎征文活動開始啦~~ 看課程&#xff0c;寫心得&#xff0c;贏千元大獎&#xff0c;還有機會加入阿里云大學技術作者群&#xff01;想試試自己的技術文筆…

配置網絡測試環境的批處理

引言 有次需要測試 50 臺左右的設備&#xff0c;每個都要連上電腦并搭好測試環境。這種事當然用服務器下發配置最方便&#xff0c;但條件不允許哦&#xff0c;只得手工一臺臺設。 寫了個批處理配置腳本&#xff0c;放到 U 盤上&#xff0c;最好再配上 autorun.inf&#xff0c;嘿…

Android 的系統架構

Android 的系統架構和其它操作系統一樣&#xff0c;采用了分層的架構。android 分為四個層&#xff0c;從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和 linux 核心層。 Android 是以 Linux 為核心的手機操作平臺&#xff0c;作為一款開放式的操作系統&#xf…

記一次 .NET 某制造業 MES 系統崩潰分析

一&#xff1a;背景 1.講故事前段時間有位朋友微信找到我&#xff0c;說他的程序偶爾會出現內存溢出崩潰&#xff0c;讓我幫忙看下是怎么回事&#xff0c;咨詢了下程序是 x86 部署&#xff0c;聽到這個詞其實心里已經有了數&#xff0c;不管怎么樣還是用 windbg 分析一下。二&a…

HTTPS協議開通,Apache服務器CSR簽名申請

登錄您的服務器終端 (SSH)。在命令提示符下&#xff0c;鍵入以下命令&#xff1a;openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr將 yourdomain 替換為您要保護的域名。例如&#xff0c;如果您的域名是 coolexample.com&#xff0c;您就…

首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

摘要&#xff1a; 每年的雙11之前&#xff0c;也是MaxCompute各種乾坤大挪移落定的時候&#xff0c;因為雙11就是各種大折騰項目的自然deadline。在今年雙11之前&#xff0c;一路向北遷移和在離線混部項目&#xff0c;將杭州集群除螞蟻外整體遷移到張北&#xff0c;涉及了絕大部…

軟件測試金字塔

軟件測試金字塔 在敏捷方法中&#xff0c;持續集成是其基石&#xff0c;持續集成的核心是自動化測試。下面這篇關于測試金字塔的文章&#xff0c;來自大師Martin Fowler。 測試金字塔的概念來自Mike Cohn&#xff0c;在他的書Succeeding With Agile中有詳細描述&#xff1a;測試…

使用pm2守護你的.NET Core應用程序

簡介PM2是常用的node進程管理工具&#xff0c;它可以提供node.js應用管理&#xff0c;如自動重載、性能監控、負載均衡等。同類工具有Supervisor、Forever等。pm2是一個進程管理工具,可以用它來管理你的node進程&#xff0c;并查看node進程的狀態&#xff0c;當然也支持性能監控…

C-指針02 2017/11/24

/* 復習 1.指針類型 int *指針類型 指針指向的變量類型指針指向哪個變量2.基本數據類型 4種指針類型 存放的地址 和系統有關系 4個字節數組類型結構體 枚舉 聯合3.指針加法減法 p 和數組搭配使用4.兩個運算符 *取值(解引用) &取地址5. *(pi) p[i] …

程序員搞笑段子

轉載于:https://www.cnblogs.com/Zhusi/p/10083474.html

學習之旅——工作記錄日志2017.7.09

1.例子&#xff1a;在dev_lala上開發完畢后&#xff0c;切換到dev分支&#xff0c;在此分支上pull最新的代碼來保證dev上的代碼是最新的。在dev分支上git branch -b haha一個新的分支haha&#xff0c; 用git log dev_lala查看提交記錄&#xff0c;將我自己的幾個記錄加到haha分…

Git常用命令與基本操作

Git操作指令系統配置基本命令獲取/刪除Git倉庫更新記錄撤銷操作遠程倉庫的使用分支系統系統配置 git config 為系統自帶的配置指令&#xff0c;它可以控制GIT的行為和外觀 配置用戶信息 git config --global user.name "John Doe" git config --global user.email …

CA周記 - 在 Azure ML 上用 .NET 跑機器學習

.NET 是一個跨平臺&#xff0c;全場景應用的開源技術。你有在用 .NET 做機器學習/深度學習的應用嗎&#xff1f;如果從框架角度&#xff0c;ML.NET / Tensorflow.NET / 不斷在進步的 TorchSharp 通過幾年的發展已經開始穩定&#xff0c;但如果在一些大型項目上&#xff0c;特別…

iOS10 優化APP首次安裝網絡權限提示方案

我剛經歷了一場末日&#xff08;停電&#xff09;&#xff0c;特別是在你想寫文檔的時候。。。 言歸正傳&#xff0c;今天的問題是解決iOS10系統下首次按鈕APP彈出的網絡權限提示所帶來了問題以及優化。 起因 查了相關文章知道由于大陸工信部出臺的新規指出&#xff0c;應用在未…