前面,我们把django框架的安装,创建一个django项目,显示helloworld,分成三个章节完成。
再加上,这个章节,django配上mysql,那么django基本入门,就完成。
之所以写这些呢,实际上,是给自己留个印象,下次想用django,看一眼,就可以上手,所以带了很多个人色彩。其他初学者,跟着操作,可能还可以。如果只是光看,效果一般吧。大佬就别来了,写的很糟糕,我懂~~~
至于我的入门,是根据下面这个视频学习的,讲的还是蛮不错的,投入时间,肯定比我这个干巴巴的文字,效果好很多。好评如潮Python Django全套教程,手把手教你从0搭建网站,带项目实战,学完可接单_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1pq4y1W7a1?p=10&spm_id_from=pageDriver
最后一个提醒,下面的食用,最好是:
根据图片,找到项目中对应的位置;
根据代码段的内容+注释,进行理解和操作。
目录
一、配置数据库的驱动
要想用数据库,肯定要用到驱动,java的是jdbc,django就要简单很多了
找到位置,添加一下mysql的驱动,在项目下面的settings.py,找到databases,加入这段内容
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
## 这个是数据库的驱动,可以用sqlite3,mysql,oracle,postgresql
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'webData',
'USER' : 'root',
'PASSWORD' : '',
'HOST' : 'localhost',
'PORT' : '3306'
## 每个项目只需要配置一处,name是数据库的仓库名,password什么的自己配置
}
}
二、下载驱动要用的库
django2.2之前用的是pysql,但是之后用的是mysqlclient(我们博客前面下的是pysql,没用)
pip install mysqlclient
## django2.2之前是pymsql, 后面的版本就是mysqlcilent了
三、在mysql里添加数据
记得,在sql里创建一下,库、表、数据
(数据自己添加,当然mysql的下载配置也自己百度,有坑哦,友情提醒,要小心)
这个是我的数据库,大家如果用自己的,后面的一些输出,查询记得对应着,改一下
mysql> create database webData;
mysql> use webData;
mysql> create table testData(
-> uname varchar(15),
-> uid int primary key,
-> upwd varchar(10));
mysql> desc testData;
四、得到数据库数据
前面,是让项目可以找到数据库。但,具体操作数据库的,是应用myapp。
所以,我们在应用myapp里,配置一下模型models.py,让myapp可以得到数据库的数据。
diango框架已经把对数据库增删改查,封装好了,所以,在模型models.py里只要把数据接收过来,然后设置一个接口,丢给程序,就万事大吉了
先把数据从数据库,读出来。
这里的XX = models.charField,就是把表里对应的数据,丢到这个XX里,所以,名字要对应好
而__str__,就是输出的接口了,把数据按照确定的格式,输出给程序。也可以有其他的写法,这里只是入门嘛,有个结果就好
from django.db import models
# Create your models here.
class testData(models.Model):
## models.Model一定要继承,django集成好数据库的增删改查到这里
## 类名随便起
uname = models.CharField(max_length=15)
uid = models.AutoField(primary_key=True)
upwd = models.CharField(max_length=10)
## 对应着表里的每个字段
## 默认输出,当调用到类名时,会返回以下格式的输出
def __str__(self):
return "%s : %s & %s"%(self.uid, self.uname, self.upwd)
class Meta:
## 内部类Meta来设置model的元数据
db_table = "testdata"
## 引导找到对应的表
五、让项目知道,应用可以找到数据
应用myapp的模型models.py好了,那下面要让项目找到,我们刚刚写的东西
在项目的settings.py里添加一下,应用名myapp,这样,项目就可以找到应用myapp下的models.py了
INSTALLED_APPS = [
## 引用,应用de配置类、配置包
## Django 的自带应用
'django.contrib.admin', ## 管理员站点
'django.contrib.auth', ## 认证授权系统
'django.contrib.contenttypes', ## 内容类型框架
'django.contrib.sessions', ## 会话框架
'django.contrib.messages', ## 消息框架
'django.contrib.staticfiles', ## 管理静态文件的框架
'myapp', ## 对应的是我们的应用名
]
六、让应用把数据显示在界面上
前面的操作,我们可以从数据库读数据了
但是光有数据不行,要把他显示出来,放在界面上
6.1配置视图views.py
找到,myapp下的views.py,把数据提出来,然后丢给界面
from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import testdata
## 从models.py里提取数据库中的表testdata
# Create your views here.
def index(reguest):
return HttpResponse("Hello World");
def getAllTestData(request):
datalist = testdata.objects.all() ## 把表testdata下所有数据读出来
for data in datalist:
print(data) ## 遍历一下
print(testdata.objects.get(uid = 1)) ## 找到表中uid=1的字段
return HttpResponse(datalist) ## 给界面返回,表下的数据,以作测试
6.2配置路由urls.py
界面接到数据了,但是别忘了最后一步,要让浏览器找到找到项目的界面(这个就是helloworld能出现的步骤了)
也就是到urls.py,路由处,添加一下浏览器的请求地址
from django.urls import path
from django.urls.resolvers import URLPattern
from . import views
urlpatterns = [
path('', views.index, name='index'),
##mod ulysess ''为请求的地址,view.index为访问的地方,name是用来反向获取url的
## 就是我们在views.py文件下写的index方法
## 请求地址里面,如果更改,例如是'aaa',那么地址栏里,xxx/myapp/aaa,''也就是不用填东西,才能访问到views.index
path('getData', views.getAllTestData, name='getAllTestData')
]
七、浏览器显示数据库的数据
最后就是将后台起起来
到浏览器下,输入地址,加上getData
浏览器上会输出datalist,终端会输出遍历的data和uid = 1的data
八、总结一下
- 要想把数据库的数据放到界面上(目的)
- 一开始要有数据库的驱动,让项目可以使用数据库(settings.py)
- 项目有用数据库的权限了,谁用呢,我们自己的应用!那就,让应用可以得到数据库的数据(models.py)
- 应用有数据了,我现在要把数据显示在界面上,就到视图(views.py)
- 界面收到数据了,要让用户看到啊,用户怎么看,用浏览器,那要让浏览器找到我们的界面,那就用到路由(urls.py)
- OVER