Django入门教程

2023-05-06 21:04:19 浏览数 (1)

一、下载与配置

1、安装python

python3详细安装教程_超级小的大西瓜的博客-CSDN博客_python3安装

2、安装Django

代码语言:javascript复制
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Django

3、安装MySQL

mysql安装教程【安装版】_超级小的大西瓜的博客-CSDN博客_mysql安装教程

二、创建

1、创建项目

代码语言:javascript复制
django-admin startproject xxx

2、启动

代码语言:javascript复制
python manage.py runserver

3、创建应用

代码语言:javascript复制
python manage.py startapp xxx

三、配置文件(settings.py)

项目同名目录下settings.py

Django配置大全_超级小的大西瓜的博客-CSDN博客_django配置

1、导入os

代码语言:javascript复制
import os

2、调试模式

代码语言:javascript复制
DEBUG = True

3、请求头HOST的值

代码语言:javascript复制
ALLOWED_HOSTS = ["*"]
#[]空列表 表示请求头中host为127.0.0.1,localhost能访问本项目
#['*']表示任何请求头的host都能访问到当前目录
#['192.168.1.3','127.0.0.1']表示只有当前两个host头的值能访问当前项目(公网ip或域名)

4、禁用csrf中间件(如果不禁用post请求会出现问题)

代码语言:javascript复制
MIDDLEWARE = [
    ......
    #'django.middleware.csrf.CsrfViewMiddleware',
    ......
]

5、TEMPLATES(模板(HTML文件)存放位置)

代码语言:javascript复制
 TEMPLATES = [
    {
        ......
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        #模板储存位置(表示存放在与manage.py同级templates目录下,可以自己修改需要的位置)
        ......
    }
]

6、static静态文件(jscssimg)

使用案例:配置后使用(127.0.0.1/static/js/my.js)即可获得(js目录下的my.js文件)

代码语言:javascript复制
STATIC_URL = '/static/' #静态文件的路由
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
#静态文件位置(表示存放在与manage.py同级static目录下,可以自己修改需要的位置)
#注意:STATICFILES_DIRS 是一个元组,不要忘记了后面的逗号,不然会报错哦

7、语言   LANGUAGE_CODE

代码语言:javascript复制
LANGUAGE_CODE = 'zh-Hans'
        #英文:'en-us'
        #中文:'zh-Hans'

8、时区 TIME_ZONE

代码语言:javascript复制
TIME_ZONE = 'Asia/Shanghai'
        #世界标准时区:'UTC'
        #中国时区:'Asia/Shanghai'

9、数据库配置

默认为sqlite

注意:需要先创建需要连接的数据

代码语言:javascript复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'需要连接的数据库名字',
        'USER':'root',#数据库名字用户名
        'PASSWORD':'123456',#数据库密码
        'HOST':'127.0.0.1',
        'PORT':'3306',#端口
        'OPTIONS': {'charset':'utf8mb4'}, #打开数据库 编码格式 ——解决4字节表情无法储存问题
    }
}

如果出现错误:Did you install mysqlclient

代码语言:javascript复制
# 如果出现 Did you install mysqlclient?
# 先安装pymysql库
# pip install pymysql
# 在__init__.py中添加
import pymysql
pymysql.install_as_MySQLdb()

10、注册应用 INSTALLED_APPS

代码语言:javascript复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #往后添加应用
    'User',
]

四、连接应用

创建应用Test---注册应用

1、修改应用的view.py

代码语言:javascript复制
from django.shortcuts import render
#导入HttpResponse
from django.http import HttpResponse

# Create your views here.

def set(request):
    return HttpResponse("访问成功")

2、在应用目录下创建文件urls.py

代码语言:javascript复制
from django.urls import path

from . import views


urlpatterns = [
    # 设置访问路径(拼接路由)
    path('set/',views.set),
]

3、修改项目目录同名下的urls.py

代码语言:javascript复制
from django.contrib import admin
#增加include
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    #访问应用的路由, 跳转的应用
    path('Test/',include("Test.urls"))

]

访问:http://127.0.0.1:8000/Test/set/

出现:访问成功

五、处理请求

六、数据库

1、安装pymysql(数据库引擎)

代码语言:javascript复制
pip install pymysql

2、配置数据库(修改settings.py配置信息)

代码语言:javascript复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'需要连接的数据库名字',
        'USER':'root',#数据库名字用户名
        'PASSWORD':'123456',#数据库密码
        'HOST':'127.0.0.1',
        'PORT':'3306',#端口
        'OPTIONS': {'charset':'utf8mb4'}, #打开数据库 编码格式 ——解决4字节表情无法储存问题
    }
}

3、models.py(数据模块,用于数据库设计)

这里创建一个用户表

代码语言:javascript复制
from django.db import models
# 需要创建应用
# Create your models here.
# 数据表名 应用名_类名
 
class Users(models.Model):
    uese_name = models.CharField('用户名',max_length=255,null=True)
    phone_number =  models.CharField('手机号',max_length=20)
    password = models.CharField('密码',max_length=255)
    register_date = models.DateTimeField('注册时间',auto_now_add=True)
 
#CharField和DateTimeField----数据类型
#max_length----最大长度
#auto_now_add----默认时间为创建时间

4、生成数据表(迁移文件)

生成迁移文件(在终端执行如下命令)

代码语言:javascript复制
python3 manage.py makemigrations

执行迁移文件(在终端执行如下命令)

代码语言:javascript复制
python3 manage.py migrate

5、数据库增删改查

代码语言:javascript复制
Users.objects.create(
    uese_name="CY",
    phone_number="1234567890",
    password="123456"
)

代码语言:javascript复制
Users.objects.filter(uese_name="CY").delete()

代码语言:javascript复制
sql = Users.objects.get(uese_name="CY")#在查不到不到会报错
sql.password = "8888888"
sql.save()#提交数据 只有提交后才会被修改

代码语言:javascript复制
#获取表中的所有内容
Users.objects.all()


#获取一条内容
sql = Users.objects.get(uese_name="CY")#在查不到不到会报(DoesNotExist)

#处理方法
try:
    sql = Users.objects.get(uese_name="CY")
    #输出手机号
    print(sql.phone_number)
except  Users.DoesNotExist:
    return HttpResponse("操作失败,用户不存在")


#获取多条内容
Users.objects.filter(uese_name="CY")


#判断某个值是否存在->bool
Users.objects.filter(uese_name="CY").exists()


#模糊查询(__icontains表示包含)
Users.objects.filter(uese_name__icontains="CY")

七、上传文件

代码语言:javascript复制
def set(request):
    import os
    file_obj = request.FILES.get('file')          #获取文件
    
    filename = os.path.join("media/",'文件名' os.path.splitext(file_obj.name)[1])    
    #('保存路径','文件名(需要带后缀)')
    #os.path.splitext(file_obj.name)[1]获取文件后缀名
    
    #开始保存
    with open(filename, 'wb') as f:
        data = file_obj.file.read()
        f.write(data)
    
    return HttpResponse("保存成功")

0 人点赞