python3详细安装教程_超级小的大西瓜的博客-CSDN博客_python3安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Django
mysql安装教程【安装版】_超级小的大西瓜的博客-CSDN博客_mysql安装教程
django-admin startproject xxx
python manage.py runserver
python manage.py startapp xxx
项目同名目录下settings.py
Django配置大全_超级小的大西瓜的博客-CSDN博客_django配置
import os
DEBUG = True
- ALLOWED_HOSTS = ["*"]
- #[]空列表 表示请求头中host为127.0.0.1,localhost能访问本项目
- #['*']表示任何请求头的host都能访问到当前目录
- #['192.168.1.3','127.0.0.1']表示只有当前两个host头的值能访问当前项目(公网ip或域名)
- MIDDLEWARE = [
- ......
- #'django.middleware.csrf.CsrfViewMiddleware',
- ......
- ]
- TEMPLATES = [
- {
- ......
- 'DIRS': [os.path.join(BASE_DIR,'templates')],
- #模板储存位置(表示存放在与manage.py同级templates目录下,可以自己修改需要的位置)
- ......
- }
- ]
使用案例:配置后使用(127.0.0.1/static/js/my.js)即可获得(js目录下的my.js文件)
- STATIC_URL = '/static/' #静态文件的路由
- STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
- #静态文件位置(表示存放在与manage.py同级static目录下,可以自己修改需要的位置)
- #注意:STATICFILES_DIRS 是一个元组,不要忘记了后面的逗号,不然会报错哦
- LANGUAGE_CODE = 'zh-Hans'
- #英文:'en-us'
- #中文:'zh-Hans'
- TIME_ZONE = 'Asia/Shanghai'
- #世界标准时区:'UTC'
- #中国时区:'Asia/Shanghai'
默认为sqlite
注意:需要先创建需要连接的数据
- 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
- # 如果出现 Did you install mysqlclient?
- # 先安装pymysql库
- # pip install pymysql
- # 在__init__.py中添加
- import pymysql
- pymysql.install_as_MySQLdb()
- INSTALLED_APPS = [
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- #往后添加应用
- 'User',
- ]
创建应用Test---注册应用
- from django.shortcuts import render
- #导入HttpResponse
- from django.http import HttpResponse
-
- # Create your views here.
-
- def set(request):
- return HttpResponse("访问成功")
- from django.urls import path
-
- from . import views
-
-
- urlpatterns = [
- # 设置访问路径(拼接路由)
- path('set/',views.set),
- ]
- 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/
出现:访问成功
pip install pymysql
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME':'需要连接的数据库名字',
- 'USER':'root',#数据库名字用户名
- 'PASSWORD':'123456',#数据库密码
- 'HOST':'127.0.0.1',
- 'PORT':'3306',#端口
- 'OPTIONS': {'charset':'utf8mb4'}, #打开数据库 编码格式 ——解决4字节表情无法储存问题
- }
- }
这里创建一个用户表
- 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----默认时间为创建时间
python3 manage.py makemigrations
python3 manage.py migrate
- Users.objects.create(
- uese_name="CY",
- phone_number="1234567890",
- password="123456"
- )
Users.objects.filter(uese_name="CY").delete()
- sql = Users.objects.get(uese_name="CY")#在查不到不到会报错
- sql.password = "8888888"
- sql.save()#提交数据 只有提交后才会被修改
- #获取表中的所有内容
- 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")
- 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("保存成功")