• Django入门教程


    一、下载与配置

    1、安装python

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

    2、安装Django

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Django

    3、安装MySQL

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

    二、创建

    1、创建项目

    django-admin startproject xxx

    2、启动

    python manage.py runserver

    3、创建应用

    python manage.py startapp xxx

    三、配置文件(settings.py)

    项目同名目录下settings.py

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

    1、导入os

    import os

    2、调试模式

    DEBUG = True
    

    3、请求头HOST的值

    1. ALLOWED_HOSTS = ["*"]
    2. #[]空列表 表示请求头中host为127.0.0.1,localhost能访问本项目
    3. #['*']表示任何请求头的host都能访问到当前目录
    4. #['192.168.1.3','127.0.0.1']表示只有当前两个host头的值能访问当前项目(公网ip或域名)

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

    1. MIDDLEWARE = [
    2. ......
    3. #'django.middleware.csrf.CsrfViewMiddleware',
    4. ......
    5. ]

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

    1. TEMPLATES = [
    2. {
    3. ......
    4. 'DIRS': [os.path.join(BASE_DIR,'templates')],
    5. #模板储存位置(表示存放在与manage.py同级templates目录下,可以自己修改需要的位置)
    6. ......
    7. }
    8. ]

    6、static静态文件(js\css\img)

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

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

    7、语言   LANGUAGE_CODE

    1. LANGUAGE_CODE = 'zh-Hans'
    2. #英文:'en-us'
    3. #中文:'zh-Hans'

    8、时区 TIME_ZONE

    1. TIME_ZONE = 'Asia/Shanghai'
    2. #世界标准时区:'UTC'
    3. #中国时区:'Asia/Shanghai'

    9、数据库配置

    默认为sqlite

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

    1. DATABASES = {
    2. 'default': {
    3. 'ENGINE': 'django.db.backends.mysql',
    4. 'NAME':'需要连接的数据库名字',
    5. 'USER':'root',#数据库名字用户名
    6. 'PASSWORD':'123456',#数据库密码
    7. 'HOST':'127.0.0.1',
    8. 'PORT':'3306',#端口
    9. 'OPTIONS': {'charset':'utf8mb4'}, #打开数据库 编码格式 ——解决4字节表情无法储存问题
    10. }
    11. }

    如果出现错误:Did you install mysqlclient

    1. # 如果出现 Did you install mysqlclient?
    2. # 先安装pymysql库
    3. # pip install pymysql
    4. # 在__init__.py中添加
    5. import pymysql
    6. pymysql.install_as_MySQLdb()

    10、注册应用 INSTALLED_APPS

    1. INSTALLED_APPS = [
    2. 'django.contrib.admin',
    3. 'django.contrib.auth',
    4. 'django.contrib.contenttypes',
    5. 'django.contrib.sessions',
    6. 'django.contrib.messages',
    7. 'django.contrib.staticfiles',
    8. #往后添加应用
    9. 'User',
    10. ]

    四、连接应用

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

    1、修改应用的view.py

    1. from django.shortcuts import render
    2. #导入HttpResponse
    3. from django.http import HttpResponse
    4. # Create your views here.
    5. def set(request):
    6. return HttpResponse("访问成功")

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

    1. from django.urls import path
    2. from . import views
    3. urlpatterns = [
    4. # 设置访问路径(拼接路由)
    5. path('set/',views.set),
    6. ]

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

    1. from django.contrib import admin
    2. #增加include
    3. from django.urls import path,include
    4. urlpatterns = [
    5. path('admin/', admin.site.urls),
    6. #访问应用的路由, 跳转的应用
    7. path('Test/',include("Test.urls"))
    8. ]

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

    出现:访问成功

    五、处理请求

    六、数据库

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

    pip install pymysql

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

    1. DATABASES = {
    2. 'default': {
    3. 'ENGINE': 'django.db.backends.mysql',
    4. 'NAME':'需要连接的数据库名字',
    5. 'USER':'root',#数据库名字用户名
    6. 'PASSWORD':'123456',#数据库密码
    7. 'HOST':'127.0.0.1',
    8. 'PORT':'3306',#端口
    9. 'OPTIONS': {'charset':'utf8mb4'}, #打开数据库 编码格式 ——解决4字节表情无法储存问题
    10. }
    11. }

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

    这里创建一个用户表

    1. from django.db import models
    2. # 需要创建应用
    3. # Create your models here.
    4. # 数据表名 应用名_类名
    5. class Users(models.Model):
    6. uese_name = models.CharField('用户名',max_length=255,null=True)
    7. phone_number = models.CharField('手机号',max_length=20)
    8. password = models.CharField('密码',max_length=255)
    9. register_date = models.DateTimeField('注册时间',auto_now_add=True)
    10. #CharField和DateTimeField----数据类型
    11. #max_length----最大长度
    12. #auto_now_add----默认时间为创建时间

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

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

    python3 manage.py makemigrations

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

    python3 manage.py migrate

    5、数据库增删改查

    1. Users.objects.create(
    2. uese_name="CY",
    3. phone_number="1234567890",
    4. password="123456"
    5. )

    Users.objects.filter(uese_name="CY").delete()

    1. sql = Users.objects.get(uese_name="CY")#在查不到不到会报错
    2. sql.password = "8888888"
    3. sql.save()#提交数据 只有提交后才会被修改

    1. #获取表中的所有内容
    2. Users.objects.all()
    3. #获取一条内容
    4. sql = Users.objects.get(uese_name="CY")#在查不到不到会报(DoesNotExist)
    5. #处理方法
    6. try:
    7. sql = Users.objects.get(uese_name="CY")
    8. #输出手机号
    9. print(sql.phone_number)
    10. except Users.DoesNotExist:
    11. return HttpResponse("操作失败,用户不存在")
    12. #获取多条内容
    13. Users.objects.filter(uese_name="CY")
    14. #判断某个值是否存在->bool
    15. Users.objects.filter(uese_name="CY").exists()
    16. #模糊查询(__icontains表示包含)
    17. Users.objects.filter(uese_name__icontains="CY")

    七、上传文件

    1. def set(request):
    2. import os
    3. file_obj = request.FILES.get('file') #获取文件
    4. filename = os.path.join("media/",'文件名'+os.path.splitext(file_obj.name)[1])
    5. #('保存路径','文件名(需要带后缀)')
    6. #os.path.splitext(file_obj.name)[1]获取文件后缀名
    7. #开始保存
    8. with open(filename, 'wb') as f:
    9. data = file_obj.file.read()
    10. f.write(data)
    11. return HttpResponse("保存成功")

  • 相关阅读:
    JOSEF约瑟 10KV高压漏电保护继电器BLD-20 φ100mm 50-500mA 导轨安装
    Linux depmod功能说明
    Python内存管理:引用计数与垃圾回收
    区块链备案
    [AIGC] 深入理解Flink中的窗口、水位线和定时器
    leetcode 907. Sum of Subarray Minimums(子数组最小值的和)
    06 分频器设计
    【试题040】多个逻辑或例题2
    Java_数组
    codeforces 1572B. Xor of 3 (div1)
  • 原文地址:https://blog.csdn.net/qq_59636442/article/details/126660452