Django入门教程

Django入门教程

创建项目

下载安装和创建项目可以先看前一篇博客链接: Django的安装与项目的创建.

  • 以下用创建的项目名称为myweb为例

创建应用

1、创建一个应用程序

Django自带了一个非常实用的应用程序,可以自动生成应用目录,在Django项目的目录myweb下执行以下命令

$ python manage.py startapp myapp
  • 执行完之后会创建一个目录myapp

在这里插入图片描述

创建一个视图
  • 打开文件myapp/views.py,编写我们第一个试图类
from django.http import HttpResponse 

def index(request):
    return HttpResponse ("Hello World!")
  • 想调用这个试图的话,我们需要将其映射到一个URL里,因此我们需要一个路由配置文件
  • 路由配置文件为myapp/urls.py,我们打开该文件,应该包含以下代码:
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    # view.index相当于引用了引用了我们在视图中创建的index类
]
  • 接下来我们要将URLconf指向myapp.url模块,在 myweb/urls.py添加一条import用于django.conf.urls.include和插入include()的urlpatterns列表:
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    #path('admin/', admin.site.urls),
    path("myapp/", include("myapp.urls"))
]
  • 之后我们验证是否连接上视图,在myweb目录下执行以下命令:
$ python manage.py runserver
  • 在浏览器中转到http://127.0.0.1:8000/myapp/,您应该看到文本"Hello, world. "

在这里插入图片描述

项目模型的设置

连接mysql设置
  • 在myweb.setting中,DATABASES的设置默认为

在这里插入图片描述

  • 如果要改成其他数据库需要先修改ENGINE,内置数据库有:
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
  • 若我们想用mysql,需要在myweb/settings.py文件中,通过DATABASES项进行数据库设置
DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE': 'django.db.backends.mysql',
        'HOST':'your host',
        'NAME': 'your databasename',
        'USER':'your user',
        'PASSWORD':'your password',
        'PORT':'your port'
    }
}

注意:Django使用MySQL数据库需要加载 MySQLdb模块,需要安装 mysqlclient

  • 我们可以用pip指令下载

$ pip install mysqlclient

from pip._internal.pep425tags import get_supported
print(get_supported())

  • 我的执行结果是这样

在这里插入图片描述
所以我需要下载mysqlclient‑1.4.6‑cp38‑cp38m‑win_amd64.whl

  • 下载下来后执行安装程序:
$ pip install mysqlclient‑1.4.6‑cp38‑cp38m‑win_amd64.whl

创建模型

  • 首先在我们的应用程序中创建一个stu表信息操作的Model类
  • 编辑 myapp/models.py文件
from django.db import models

# Create your models here.
class Stu(models.Model):
    '''自定义Stu表对应的Model类'''
    #定义属性:默认主键自增id字段可不写
    id = models.AutoField('序号', primary_key=True)
    name = models.CharField('姓名', max_length=16)
    age = models.SmallIntegerField('年龄')
    sex = models.CharField('性别', max_length=1)
    classid=models.CharField('班级', max_length=8)

    # 定义默认输出格式
    def __str__(self):
        return "%d:%s:%d:%s:%s"%(self.id,self.name,self.age,self.sex,self.classid)

    # 自定义对应的表名,默认表名:myapp_stu
    class Meta:
        db_table="stu"

注意:这里的类属性必须和数据库table中的每个字段的设置一一对应

激活模型
  • 编辑myweb/settings.py文件,并将该虚线路径添加到该INSTALLED_APPS设置。
INSTALLED_APPS  =  [ 
    'django.contrib.admin''django.contrib.auth''django.contrib.contenttypes''django.contrib.sessions''django.contrib.messages''django.contrib.staticfiles''myapp.apps.MyappConfig',
    ]
  • 这样我们就能用Django封装好的方法对数据库中的数据进行读取了
  • 首先进入交互式的Python shell,并使用Django提供的免费API

在这里插入图片描述

>>> from myapp.models import Stu

>>> mod = Stu.objects
# 获取所有信息
>>> lists = mod.all()
# 获取单条信息
>>> mod.get(id=1)
在myapp应用的视图中使用
# 文件:myapp/views.py 文件代码
def stu(request):
    #获取所有stu表信息
    lists = Stu.objects.all()
    print(lists)
    #获取单条学生信息
    print(Stu.objects.get(id=2))

    return HttpResponse("ok")
  • 之后配置路由
#在myapp/urls.py文件中配置
path('stu/', views.stu),
  • 再次启动服务后,就可以在 http://localhost:8000/myapp/stu中看到我们查询到的信息了

(转载注明出处)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值