說明一下 GET 和 POST 的區別: 1, GET ①獲取一個頁面 ②提交數據 數據顯示在URL ?user=alex&pwd=alexdsb 2,POST from 表單提交數據 數據不顯示
建立APP 有兩種方式python
1、 命令行建立APP文件:mysql
python manage.py startapp app01
執行命令後 項目目錄下會多出一個app文件程序員
2、 也能夠用pycharm來建立app文件sql
1. Django項目建立後追加app:數據庫
可使用Pycharm的manage.py工具來執行命名.在主菜單中選擇Tools,在下拉菜單中選擇Run manage.py Taskdjango
在彈出的命令窗口中直接輸入命令就能夠建立好app瀏覽器
startapp app01
2,在建立Django項目時,創建appapp
在Application name 中添加上要建立的名字便可ide
1,下載: 命令行: pip install django == 1.11.15 pip install -i或 源 django == 1.11.15 pycharm settings 解釋器 點 + 號 輸入django 選擇版本 2,建立 Django項目 1,命令行: (可能有的東西沒配置) cd 保存項目的目錄 django - admin startporject 項目名 2,pycharm(能夠本身都配置好) filr(按鈕)--> new project --選擇django ---->選擇解釋器--建立django項目 3,啓動項目 1,命令行: 切換到 manage.py的目錄下 cd python manage.py runserver #127.0.0.1:8000 python manage.py runserver 80 #127.0.0.1:8000 python manage.py runserver #0.0.0.1:8000 2.pycharm 配置項 點綠色三角啓動 4,settings配置 1,靜態文件 STATIC_URL= "/static/" #別名 () STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static"), ] (能夠建立多個) 2,TEMPLATES 模版 放HTML文件的地方 DIRS [os....] 自動生成的 3,註釋 csrf中間件 MIDDLEWARE 第四行 csrf 註釋掉這一行 4,數據庫的配置 5, URL 和函數的對應關係 ---> urls.py urlpatterns[ url(r"^admin/",admin.site.urls), url(), ] 6.APP 1.建立APP 1,命令行: python manage.py startapp APP名 2,pycharm tools ---> run manage.py task --> startapp APP名 2.註冊APP 在settings.py中 INSTALLED_APPS[ 加上本身的APP名(如若pycharm建立 會自動添加 如果手動添加則按規範來 "APP名字.apps.App01Config") ] 7.使用mysql數據庫 1.建立一個數據庫 2.在srttings配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #引擎 'NAME': 'db66', #數據庫名字 "USER": "root", #帳戶 "PASSWORD": "666666", #密碼 "HOST": "127.0.0.1", #IP地址 "PORT": 3306, #端口號 } } 3.告訴Django 使用pymysql 模塊鏈接數據庫 在settings.py 同級目錄下的 __init__.py中寫(下載好了 pymysql): import pymysql pymysql.install_as_MYSQLad() 4.建表 在APP文件夾裏 models.py文件中寫類(繼承 models.Model) class Userinfo(models.Model): user = models.CharField(max_length=32) pwd = models.CharField(max_length=32) 5.執行命令 (數據庫遷移命令) Tools ---> Run~~ python manage.py makemigrations #記錄models.py中類是否是有變化 將變化的內容記錄下來 記錄到了 APP文件下 migrations 0001_initial.py裏面 python manage.py migrate 8 .ORM 對象和關係型數據庫的映射 經過操做對象的方式來操做數據庫 映射關係; 類 ---> 數據表 對象 ---> 數據行 屬性 ---> 字段 ORM 能作的事: 操做數據表 (建表,刪表,改表) 操做數據行 ORM 的操做 : from login import models # 獲取全部數據 models.Userinfo.objects.all() ---> Queryset類型 # 獲取一條數據 models.Userinfo.objects.get(user="??",pwd="??") get取不到數據或者取到多條數據的時候報錯 #建立一條數據 models.Userinfo.objects.creat(user="??",pwd="??") 9.form表單 1.method ="post" (form表單裏面 必須帶有這個) action="" ,這是請求方式 和提交數據的地址 2.全部的 input標籤要有name屬性, name的名字要和 上面ORM 的user pwd 相同 3.有一個input 的type="submit" 或者有一個button 按鈕 就能夠提交form表單 10. views.py 寫函數 request 跟請求相關的內容 request.method 字符串 請求方式 GET/POST request.POST post請求提交的數據 字典 request.GET get請求提交的數據 返回值 from django.shortcuts import HttpResponse,render,redirect HttpResponse("字符串") -->頁面顯示的就是字符串 render(request,"模版文件的名字") -->渲染你的HTML文件返回給瀏覽器 redirect("/要跳轉的URL/") --->重定向 告訴瀏覽器再向瀏覽器發次GET請求
1、 ORM的概念函數
對象關係映射(Object Relational Mapping,簡稱ORM)模式是一種爲了解決面向對象與關係數據庫存在的互不匹配的現象的技術。
簡單的說,ORM是經過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關係數據庫中。
ORM在業務邏輯層和數據庫層之間充當了橋樑的做用。
2、 ORM由來
讓咱們從O/R開始。字母O起源於"對象"(Object),而R則來自於"關係"(Relational)。
幾乎全部的軟件開發過程當中都會涉及到對象和關係數據庫。在用戶層面和業務邏輯層面,咱們是面向對象的。
當對象的信息發生變化的時候,咱們就須要對象的信息保存在關係數據庫中。
按照以前的方式來進行開發就會出現程序員會在本身的業務邏輯代碼中夾雜不少SQL語句用來增長、讀取、修改、刪除相關
數據,而這些代碼一般都是極其類似或者重複的。
3、ORM的優點和劣勢
優點:
ORM解決的主要問題是對象和關係的映射。它一般將一個類和一張表一一對應,類
的每一個實例對應表中的一條記錄,類的每一個屬性對應表中的每一個字段。
ORM提供了對數據庫的映射,不用直接編寫SQL代碼,只需操做對象就能對數據庫操做數據。
讓軟件開發人員專一於業務邏輯的處理,提升了開發效率。
劣勢:
ORM的缺點是會在必定程度上犧牲程序的執行效率。
ORM的操做是有限的,也就是ORM定義好的操做是能夠完成的,一些複雜的查詢操做是完成不了。
ORM用多了SQL語句就不會寫了,關係數據庫相關技能退化...
4、 ORM的總結:
ORM只是一種工具,工具確實能解決一些重複,簡單的勞動。這是不能否認的。
但咱們不能期望某個工具能一勞永逸地解決全部問題,一些特殊問題仍是須要特殊處理的。
可是在整個軟件開發過程當中須要特殊處理的狀況應該都是不多的,不然所謂的工具也就失去了它存在的意義
建立項目!!!!
Django 中默認的數據庫是用的db.sqlite3 (ACID的關係型數據庫管理系統,它包含在一個相對小的C庫中);
更改這個默認的數據庫爲指定的MySQL數據就須要從新配置主文件夾中的settings.py 配置文件:
1,在Django項目中的srttings.py文件中,配置數據庫鏈接信息:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "你的數據庫名稱", # 須要本身手動建立數據庫
"USER": "數據庫用戶名",
"PASSWORD": "數據庫密碼",
"HOST": "數據庫IP",
"POST": 3306
}
}
2.在與Django項目同名的目錄下的 __init__.py文件中寫以下代碼,告訴Django使用pymysql模塊鏈接Mysql數據庫:
引入pymysql文件時 要肯定 已經下載了pymysql這個包 ( pip install pymysql (終端執行))
import pymysql
pymusql.install_as_MYSQLdb()
注意! 數據庫遷移的時候出現一個警告:
WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default' HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it.
在配置中多加一個OPTIONS參數 :
'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
在Django中model是你數據的單1、明確的信息來源。它包含了你存儲的數據的重要字段和行爲。一般,一個模型(model)映射到一個數據庫表。
基本狀況:
1,建立數據庫的表:
# 1, 在APP文件夾中找到 models.py文件夾; # 2, 導入該模塊 from django.db import models class Userinfo(models.Model): # 3, 繼承該類, user = models.CharField(max_length=32) # varchar(32) # 4, 添加字段 pwd = models.CharField(max_length=32) # 4, 添加字段 def __str__(self): return self.user # 5, 數據庫遷移 執行兩條命令: python manage.py makemigrations # 把models.py的變化記錄下來 python manage.py migrate # 去修改你的數據庫
2,獲取表中的數據,以及插入數據:
# 使用數據庫中的數據每每是在視圖函數中的需求, 因此須要在 APP文件中的 view.py中使用 from app01 import models # 從本身的app01的包中導入 models 模塊. 該模塊建立了字段 models.Userinfo.objects.all() # 此方法是獲取全部的數據 models.Userinfo.objects.get(user='Fush') # 此方法獲取一條字段user='Fush'的數據, 若沒有符合條件的數據則報錯, 若是有多條則也報錯 models.Userinfo.objects.create(user='MJJ',pwd='XJJ') # 此方法是插入數據