1. 程式人生 > >Django文件配置及orm

Django文件配置及orm

highlight 對象關系映射 clas all 程序 sql 連接 lis import

http協議
-特點:
    1 基於TCP/IP協議之上的應用層協議
    2 基於請求-響應模式
    3 無狀態保存
    4 無連接
-請求頭:
請求首行 get / http/1.1\r\n
key:value\r\n
key:value\r\n
\r\n
請求體的內容

-響應頭:
響應首行 http/1.1 200 ok \r\n
響應頭: key:value\r\n
\r\n
響應體: html的代碼
-狀態碼: 1開頭(正在處理) 2開頭(處理完畢) 3開頭(重定向) 4開頭(客戶端問題) 5開頭(服務端問題)

Django目錄結構:
  1 工程名的文件夾:
        settings:全局配置
        urls:路由根視圖函數映射關系
app名字的文件夾:
        views:視圖函數 models:orm關系映射

一、django中app的概念:
大學:----------------- 項目
信息學院 ----------app01
物理學院-----------app02
****強調***:創建了app,要在配置文件中註冊
...

技術分享圖片settings文件內的配置,框內是配置app01的語句也可以寫成 ‘app01‘


二、模板路徑配置:

1 templates文件夾 templates文件夾內一般存放views要渲染的頁面創建了templates文件夾後要查看settings文件內有沒有配置
2 settings裏註冊一下

技術分享圖片


三、靜態文件配置:
1 STATIC_URL = ‘/static/‘ 一般不要改
2 創建一個static文件夾 一般不要改
3 STATICFILES_DIRS=[
os.path.join(BASE_DIR, ‘static‘), 創建的文件夾路徑(可以寫多個)
]
靜態文件配置也需要在settings文件內配置,static文件夾內一般存放的是js、jq、圖片等文件

技術分享圖片

四、完整版登錄功能
  1.login.html
    1 action:提交到後臺的地址三種寫法:
1 http://127.0.0.1:8000/login
2 /login/ 推薦用
3 空
2 method post方式
3 <input type="submit" value="提交">或<button></button> #type不可以是button

<form action="http://127.0.0.1:8000/login" method="post">
        <p>
          用戶名:<input type="text" name="name" class="form-control">
        </p>
        <p >
          密碼:<input type="password" name="pwd" class="form-control">
        </p>
        <input type="submit" value="提交">
  </form>

  2.視圖層:
1 request.method ----前臺提交過來請求的方式
2 request.POST(相當於字典)----post形式提交過來的數據,(http請求報文的請求體重)
3 request.POST.get(‘name‘) ----推薦用get取值(取出列表最後一個值)
4 request.POST.getlist(‘name‘)-----取出列表所有的值_
5 前臺get方式提交的數據,從request.GET字典裏取

    技術分享圖片

  3.鏈接數據庫(防止註入,推薦以下寫法)
cur.execute(‘select * from user where name=%s and password=%s ‘,[name,pwd])

技術分享圖片



五、get請求和post請求
get:獲取數據,頁面,攜帶數據是不重要的數據(數據量有大小限制)
post:往後臺提交數據

六、新手三件套總結
1 render--返回頁面
默認會去templates裏找,註意路徑
2 redirect--重定向
3 HttpResponse
本質:都是返回HttpResponse的對象

七、orm介紹
	1 ORM即Object Relational Mapping,全稱對象關系映射。
	優點: 
		1 不用寫sql,不會sql的人也可以寫程序
		2 開發效率高
	2 缺點:
		1 可能sql的效率低
	3 如何使用:
		如果連接mysql:在setting裏配置:
		    ‘default‘: {
				‘ENGINE‘: ‘django.db.backends.mysql‘,
				‘HOST‘: ‘127.0.0.1‘,
				‘PORT‘: 3306,
				‘USER‘: ‘root‘,
				‘PASSWORD‘: ‘admin‘,
				‘NAME‘: ‘lqz‘,
			}
		在app下的__init__.py裏寫:
		import pymysql
		pymysql.install_as_MySQLdb()
	
	4 django-orm:
		1 不能創建數據庫(需要手動創建數據庫)
		2 可以創建數據表
		3 可以創建字段
		
	5 數據庫遷移
		1 python3 manage.py makemigrations   ----記錄一下數據庫的變化
		2 python3 manage.py migrate          ----將變化同步到數據庫中

Django文件配置及orm