1、配置MySQLhtml
Django 的默認數據庫是sqlite3,具體怎麼樣不知道了,反正是沒用過,這裏改成MySQL,作法也很簡單,只須要修改配置文件便可python
1.項目名文件下settings.pymysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blog_table', #你的數據庫名稱
'USER': 'root', #你的數據庫用戶名
'PASSWORD': '123456', #你的數據庫密碼
'HOST': 'localhost', #你的數據庫主機,留空默認爲localhost
'PORT': '3306', #你的數據庫端口
}
}
複製代碼
更多數據庫配置參考:docs.djangoproject.com/en/2.0/ref/…sql
2.項目名文件下 __ init__.py數據庫
import pymysql
pymysql.install_as_MySQLdb()
複製代碼
2、建立modelsdjango
from django.db import models
# Create your models here.
class Article(models.Model):
#惟一ID
article_id = models.AutoField(primary_key=True)
#文章標題
title = models.TextField(max_length=100)
#文章摘要
brief_content = models.TextField(max_length=200)
#文章內容
content = models.TextField(max_length=2000)
#文章發佈日期
publish_date = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
複製代碼
經常使用model field 類型json
一、AutoField 一個自增的IntegerField,通常不直接使用,Django會自動給每張表添加一個自增的primary key。bash
二、BigIntegerField 64位整數, -9223372036854775808 到 9223372036854775807。默認的顯示widget 是 TextInput.app
三、BinaryField ( Django 1.6 版本新增 ) 存儲二進制數據。不能使用 filter 函數得到 QuerySetjsp
四、BooleanField True/False,默認的widget 是 CheckboxInput。 若是須要置空,則必須用 NullBooleanField 代替。 Django 1.6 修改:BooleanField 的默認值 由 False 改成 None,在 default 屬性未設置的狀況下。
五、CharField 存儲字符串。必須有 max_length 參數指定長度。默認的form widget 是 TextInput 若是字符串巨長,推薦使用 TextField。
六、CommaSeparatedIntegerField 一串由逗號分開的整數。必須有 max_length 參數。
七、DateField 日期,與python裏的datetime.date 實例同。有如下幾個可選的選項,均爲bool類型: DateField.auto_now: 每次執行 save 操做的時候自動記錄當前時間,常做爲最近一次修改的時間 使用。注意:老是在執行save 操做的時候執行,沒法覆蓋。 DateField.auto_now_add: 第一次建立的時候添加當前時間。常做爲 建立時間 使用。注意:每次create 都會調用。 默認的form widget 是 TextInput。 注意:設置auto_now 或者 auto_now_add 爲 True 會致使當前自動擁有 editable=False 和 blank = True 設置。
八、DateTimeField 日期+時間。與python裏的 datetime.datetime 實例同。經常使用附加選項和DateField同樣。 默認 form widget 是一個 TextInput
九、TextField 大文本,巨長的文本。默認的 form widget 是 Textarea。
3、同步數據庫
終端輸入命令
# 1. 建立更改的文件
python manage.py makemigrations
# 2. 將生成的py文件應用到數據庫
python manage.py migrate
複製代碼
咱們的表已經在數據庫生成,其它的應該是django的系統表
這裏須要注意的是django不負責數據庫編碼,因此新建數據庫時必定要指定好編碼,否則後面操做中文字符會報錯
導出數據 導入數據
python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json
複製代碼
把數據庫中的表生成對應的model
python manage.py inspectdb
複製代碼
4、建立超級管理員
python manage.py createsuperuser # 按照提示輸入用戶名和對應的密碼就行了郵箱能夠留空,用戶名和密碼必填
python manage.py changepassword username # 修改 用戶密碼
複製代碼
建立完成以後,啓動項目登錄admin後臺
http://127.0.0.1:8888/admin
複製代碼
在這裏咱們也能夠查看、維護數據
5、數據查詢
如今表裏面插入兩條數據,在admin後臺添加或者在數據庫直接添加
django能夠直接渲染模板頁面,相似於jsp那種
views.py
from django.shortcuts import render
from django.http import HttpResponse
from blog.models import Article
def get_all_article(request):
#獲取全部數據
article_list = Article.objects.all()
#結合一個給定的模板和一個給定的上下文字典, 並返回一個渲染後的HttpResponse對象
return render(request, 'blog/articles.html',{
'article_list': article_list
})
複製代碼
記得添加應用的路由
path('get_all_article', blog.views.get_all_article),
複製代碼
編寫頁面,django 有不少本身的語法,感興趣能夠網上找一下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
{% for article in article_list %}
<tr>
<td>{{article.title}}</td>
<td>{{article.brief_content}}</td>
<td>{{article.publish_date}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
複製代碼
訪問測試
http://127.0.0.1:8888/blog/get_all_article
複製代碼
能夠正常取出數據,配置MySQL的大體流程就是這樣了