django入门教程

  1. django的安装与运行
  2. url路由设置
  3. 创建数据库和表
  4. 对资源的增、删、改、 查
  5. 登录退出的实现
  6. 分页和过滤
  7. 部署

django的安装与运行

安装django和安装其他python库一样,执行如下命令:
pip install django

安装好django后开始创建项目,首先进入到项目所在文件目录,然后执行如下命令:
django-admin startproject 项目名

创建完项目后可以执行如下指令来启动运行项目:
python manage.py run server 0.0.0.0:80
注:0.0.0.0表示本机所有ip

注:127.0.0.1是环回地址
启动运行后就可以去浏览器输入127.0.0.1,然后就可以看到以下画面:

url路由设置
我们可以先创建一个项目app,注:这里的app指的是项目里的应用。

python manage.py start app app名字

app能实现相对独立的功能,一个项目可以有多个app实现不同的功能模块,当然也可以把所有功能放在一个app中,但是这样不便于后期的修改和维护。
执行生成app语句后会出现一个目录名为app名字的目录,里面包含了如下的文件:

app名字/
    __init__.py 
    admin.py
    apps.py
    migrations/
       __init__.py
    models.py
    tests.py
    views.py

后面章节会讲到这些文件它们各自的作用。
app建好之后就可以开始设计它的功能啦!
当浏览器输入网址发送请求时候,服务器会
返回一些html文档,然后经过浏览器解析就成了我们所看到的网页,我们现在利django可以做到响应http请求,返回给浏览器一些html字符串。
创建的app内有一个views.py的文件,这个文件一般是用来写处理http请求的代码。例如:

from django.http import HttpResponse
def show(request):
    return HttpResponse("hello friend")

写好处理的代码后就到了本章的重要环节配置url路由,比如我们假设当浏览器访问的 http 请求的 url 地址是 /show , 就由 views.py 里面的函数 show 来处理返回一段字符串给浏览器
打开项目名下的urls.py文件,在 urlpatterns 列表中添加信息,如下所示:

from django.contrib import admin
from django.urls import path
from app名.views import show
urlpatterns = [
path('admin/',admin.site.urls),
path('show/', show),]

我们添加的是path(‘show/’, show),表示当前端过来的请求 url地址是show/ , 就由views.py 里面的函数 show来处理。然后我们启动运行django项目在浏览器窗口输入127.0.0.1/show/就可以看到以下画面:

如果我们要绑定指定ip,就需要在settings.py这个文件中添加绑定ip地址。
例如我们修改settings.py里的参数如下所示:

#  *表示本机所有ip
ALLOWED_HOSTS = ['*']

表示绑定所有本机的IP地址,当然你也可以写一个或多个IP,只绑定一个或多个IP地址
然后我们就可以通过本机的IP地址来访问啦,效果如下所示:

windows小窍门 在cmd命令行中输入 ipconfig 可以查看本机的 IP地址

一个项目中我们会有很多功能,如果都写在
一个urls.py文件就会显得很臃肿,不利于后
期的修改和维护,所以我们可以把url路由拆分到多个路由配置文件中。
例如:我们要实现一些管理员的功能,首先我们可以创建一个名叫mgr的app,然后在里面实现一些管理员的操作。其他操作暂时不提,我们先来看看路由文件的配置 假如一个添加用户的http请求为 /mgr/adduser。
可以在总路由中配置只要是以mgr开头的请求就把改请求 分发到其他路由中去处理。代码如下所示:

from django.contrib import admin
from django.urls import path,include
urlpatterns=[
path('admin/',admin.site.urls),
path('mgr/', include(mgr.url),]

我们可以手动在mgr这个app中创建一个urls.py路由文件。文件中写入:

from django.urls import path
from mgr.views import adduser
urlpatterns=[
path('adduser/',adduser),
]

这样以后以mgr为开头的请求都由mgr里面的分路由处理了,既简单明了,也利于后期修改维护。当然你也可以拆分更多级,但一般项目中拆分2~3级就够了。

创建数据库和表

django为了便于开发,有一个默认的简单的数据库sqlite 让我们使用,在使用前我们可以先安装一个sqlite 的工具 sqlitestudio便于我们后面的操作。sqlitestudio的官网地址为:
https://sqlitestudio.pl/
当然如果你以后想要用别的数据库也可以去settings.py里面修改数据库的配置在后面会讲如何换成MySQL数据库。
django采用的是ORM,即使你不会操作数据库,没有掌握SQ语句也可以对数据库操作,比如你想要创建一张用户表,那么你可以定义一个类,然后django会自动帮我们在数据库中创建一张表,表明就是:app名字_类名
我们可以执行以下语句来创建一个数据库:

python manage.py migrate

然后就可以通过sqlitestudio来查看数据库的内容了,你可以看到如下内容:


里面有一些django默认的表,这是django默认生成的数据库表。

数据库有了那么我们就应该去创建需要的数据库表了,还记得前面创建的mgr这个app吗?
在里面有一个叫models.py的文件吗,有关数据库的操作我们一般在里面进行。

打开后,发现里面是空的这时,就需要我们在里面添加内容,我们可以写入以下代码来创建一个叫User的数据库表:

from django.db import models
class User(models.Model):
     # 名字
     name=models.CharField(max_length=100) 
     # 电话     
     phonenumbe=models.CharField(max_length=200)   
     # 电子邮箱 
     email=models.CharField(max_length=100)

name、phonenumber、email是该表的3个字段,CharField 对应了 数据库中 varchar类型的数据库字段,max_length 设置了该字段最大的长度,除了 CharField 对象类型外,还有许多对象类型,如有需要请查看官方文档:
https://docs.djangoproject/zh-hans/3.1/
现在我们定义了一个表,但是现在django还不知道我们定义了这个表,我们需要告诉django我们定义了一个表,所以我们需要在settings.py添加一段代码告诉django。

INSTALLED_APPS = [
    'django.contrib.admin',    
    'django.contrib.auth',    
    'django.contrib.contenttypes',    
    'django.contrib.sessions',    
    'django.contrib.messages',    
    'django.contrib.staticfiles',   
    #也可以只写app名字
    #加入下面这段
    'mgr.apps.MgrConfig',]

这段意思是告诉django,MgrConfig是mgr/apps.py里面定义的一个配置的类

打开mgr/apps.py 我们可以看到如下内容:

class MgrConfig(AppConfig):
    name = 'mgr'

这里的name 是用来定义 应用的python模块路径的。 也就是说 应用 模块路径为 mgr。

然后我们需要django我们修改了配置类,让他去检查一下修改内容。
执行如下命令:

#加app名字代表只查看该app的改动
#也可以不加查看所有app的改动
python manage.py makemigrations mgr

现在django知道了需要修改的内容,让我们再执行一次 创建数据库的命令:

python manage.py migrate

把修改内容提交到数据库,让我们再打开sqlitestudio查看一下数据库的变化吧。
我们创建了如下一张mgr表:

即使我们不懂关于数据库的操作也能通过django框架来对数据库进行操作,而且当我们使用不同数据库时,只需要更改一下设置就,不用修改源代码就能成功操作不同数据库,这很大程度上减轻了开发者的负担,降低了学习成本.

现在我们有了数据库,那么接下来我们就要去管理数据。django有一个简单的管理界面,可以对数据进行添加、修改、删除,你可以在浏览器输入http://127.0.0.1/admin/login/?next=/admin/然后就会有一个登录界面如下图所示:

我们现在没有账号,不能登录进行操作.所以我们需要创造一个超级管理员来登录,在命令行中输入:

python manage.py createsuperuser

然后依次输入用户名,邮箱地址,密码然后我们就完成了一个创建超级管理员的操作了,如下所示:

赶快用你的账号密码登录试试吧!

未完待续
个人博客:https://cxy96.top
如果喜欢请点个赞支持一下吧
(〜^^)〜

更多推荐

django入门教程