---恢復內容開始---css
靜態文件:對已經寫好過了的文件,咱們只是拿過來用,那麼這個文件就能夠被稱爲靜態文件。前端
靜態文件能夠是:
bootstrap一類的框架的的文件python
image圖片文件夾mysql
css樣式文件sql
js文件夾數據庫
在django中全部的靜態文件都存放在static文件夾下django
通常存放的子文件夾bootstrap
css文件夾 當前網站的css樣式文件後端
js文件夾 當前網站的js文件前端框架
image文件夾 圖片文件夾
其 他(前端框架代碼 第三方插件代碼...
你的靜態文件若是要想在django中有效的話,那麼必須在settings中配置一下
配置:
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
]
這樣你只要輸入相應的靜態文件的路徑就能夠有效的使用。
STATIC_URL = '/static/' 這個不是什麼文件夾的名字,而是接口前綴
只要你想要訪問靜態文件,那麼就必需要前面都必須是/static打頭,這個不是你的靜態文件夾的名字,而是接口前綴。後面纔是要找尋的路徑。
由於裏面能夠存放多個路徑,這個訪問不到訪問下一條,都沒有會報請求資源不存在。
{% load static %} 這個是初步導入接口前綴
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
一個端口號就啓動一個django項目,省得出bug
用戶能夠訪問到的資源放在url中,也就是說url中設定什麼資源,用戶就能夠訪問到相應的資源。
攜帶數據的方式是url後面問號跟數據
http://127.0.0.1:8000/login/?username=zekai&password=123
另外請求改爲post後要去settings裏面去註釋掉一箇中間件
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
form表單提交數據的目的地是由action控制的
1.不填,默認是當前文件所在路徑
2.填全路徑
3.寫後綴
request這個參數是wsgi這個模塊幫咱們處理的,跟wsgiref模塊裏面的env很類似,都是請求相關的數據
獲取請求的方法就是
request.method
request.GET獲取前端get請求的數據(相似一個大字典)
request.GET.get('name') 這個默認是獲取最後的值
request.GET.getlist('hobby') 這個是獲取所有
request.POST是獲取前端post請求攜帶的數據(相似於一個大字典)
request.POST.get('name')這個默認是獲取最後的值
request.POST.getlist('hobby') 這個是獲取所有
就是database那個按鈕,使用的時候別忘了裝插件先
django默認使用的是自帶的splite3數據庫,小型數據庫。
若是想要使用其餘的數據庫就要在settings配置文件中從新配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'day51', 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'root', 'PASSWORD':'123', }
配置完後還要在項目文件夾或者應用名文件夾下的__init__文件中替換已經不兼容的mysql_db這個
默認鏈接mysql的。
import pymysql pymysql.install_as_MySQLdb()
ORM:對象關係映射
類---------表
對象-----------表中記錄
對象的屬性---------記錄上字段對應的值
首先要在models.py這個文件上寫模型表類
class User(models.Model): # 將id字段設置爲User表主鍵字段 在django orm中 你能夠不寫主鍵字典 django會默認給你的表建立一個名爲id的主鍵字段 # id = models.AutoField(primary_key=True) # 一旦你本身指定了主鍵字段 那麼django就不會自動再幫你建立了 username = models.CharField(max_length=32) # username varchar(32) CharField必需要指定max_length參數 password = models.IntegerField() # password int
python manage.py makemigrations 這個只是將操做記錄下來,但並無同步到數據庫中
python manage.py migrate 這個是真正同步到數據庫中
一旦表中字段發生改變就要執行這條指令,一條用於記錄操做,一條用於真正同步
就是在類中加字段,但要記住,若是表已經建好了,那麼再新增字段有2種方式
1.給新增的字段設置默認值
addr = models.CharField(max_length=32,default='China')
2.讓新增的字段能夠爲空
null=True
就是註釋那個字段,而後執行 python manage.py makemigrations 和python manage.py migrate這2條指令
先導入models
models.User.objects 這3個參數不管增刪改查都是固定的
models.User.objects.all() 這個是查全部=select * from User;
model.User.objects.get(name=name) 這個是獲取對象自己,若是不存在則會報錯
res = models.User.objects.filter(username=username) 這個獲取的是列表套對象,能夠經過索引0拿對象,但不建議,建議用first()拿對象,由於裏面已經封裝好了。
查詢出來的queryset對象都有一個query方法能夠獲取原生的sql語句
2.user_obj = models.User(username=username,password=password)
user_obj.save()
刪:
models.User.objects.filter(條件).delete()
1.models.User.objects.filter(條件).update()
2.user_obj.name=username
user_obj.save()
用戶的增刪改查
1.經過orm展現全部到前端
all()
模板語法for循環
2.添加新增按鈕
a標籤的href直接觸發後端邏輯
create()
編輯和刪除按鈕
利用get請求攜帶的數據,在url後面跟問號加對應數據的id值,
若是是編輯就從新渲染一個頁面,若是是刪除直接操做就好。