django
虚拟环境创建: virtualenv --no-site-packages -p python.exe路径 环境名
安装: pip install django==2.1.7
需要再虚拟环境被激活(env的Script文件夹下activate)的情况下才能使用此命令
创建项目django-admin startproject 项目名day01
创建django应用: python manage.py startapp 应用名app
启动,修改ip和端口
修改端口: python manage.py runserver 端口号
修改IP和端口: python manage.py runserver IP:端口
数据库简单配置与迁移
修改settings.py文件中DATABASE的数据: NAME,USER,PASSWORD,HOST,PORT,OPTIONS
迁移django默认提供的模型: python manage.py migrate
django自带后台管理
访问: IP:端口/admin/
创建账号: python manage.py createsuperuser
生成迁移文件: python manage.py makemigrations
将'app'加入settings.py
中的APP定义中
执行迁移文件: python manage.py migrate
注意: 当第一次迁移django默认提供的表时,直接执行migrate
命令即可
在day01的__init__.py中需要写入
import pymysql
pymysql.install_as_MySQLdb()
来解决django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
的问题
models.py
# Create your models here.
class Article(models.Model):
#模型中不用自定义自增,迁移时会自动创建
title = models.CharField(max_length=10, null=False)
desc = models.CharField(max_length=100,null=True)
class Meta:
# 指定表名
db_table = 'article'
class Student(models.Model):
s_name = models.CharField(max_length=10, unique=True, null=False)
age = models.IntegerField(default=18)
# 第一次创建数据时,自动默认为当前创建的时间
create_time = models.DateTimeField(auto_now_add=True)
# 修改时自动更新为修改的时间
operate_time = models.DateTimeField(auto_now=True)
is_delete = models.BooleanField(default=0)
# decimalField:5位数,小数占两位
class Meta:
db_table = 'student'
views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
from app.models import Student
def hello(request):
return HttpResponse('hello world')
def add_stu(request):
if request.method == 'GET':
#新增学生信息
# stu = Student()
# stu.s_name = '小明'
# stu.age = 29
# stu.save()
Student.objects.create(s_name='小花',age=23)
return HttpResponse('响应成功')
def del_stu(request):
if request.method == 'GET':
# filter字段等于值
stu = Student.objects.filter(s_name='小明').first()
stu.delete()
# 删除多条
Student.objects.filter(s_name='小花').delete()
return HttpResponse('删除成功')
def update_stu(request):
if request.method == 'GET':
# 修改数据
# stu = Student.objects.filter(s_name='小花').first()
# stu.age = 19
# stu.save()
# 只有再save()才会更新
Student.objects.filter(s_name='小花').update(age=20,s_name='小强')
return HttpResponse('修改数据')