mysql实际案例流程 python

Django的环境配置
  • python环境是ok的

  • pip是可用的

    • pip用来安装第三方包的
  • 创建虚拟环境【可以先不写】

    • linux/mac
    • windows
  • 安装Django

    pip install django==1.11.7
    
  • django安装成功之后,创建项目

    创建项目之前首先新建一个目录【文件夹】

    进入这个目录之后执行

    django-admin  startproject  projectname
    #django-admin  startproject  项目名
    
  • 使用pycharm打开项目的时候,要在manage.py的上一级打开

    • manage所在的文件夹z
      注意:
  1. manage.py是命令工具,可使我们用多种方式对Django进行交互。
    2.int.py一个空文件,他告诉你这个目录应该被看做一个python包
    3.setting.py项目的配置文件
    4.url.py项目的url声明
    5.wsgi.py项目与WSGI兼容的web服务器端入口
    -在__int__.py中添加
    import pymysql
    pymysql.install_as_MySQLdb()
    -在setting.py中修改
    DATABASES = {
    ‘default’: {
    ‘ENGINE’: ‘django.db.backends.mysql’,
    ‘NAME’: “sunck”,数据库名字
    “USER”:“root”,数据库用户名
    “PASSWORD”:“sunck”,数据库密码
    “HOST”:“localhost”,IP地址
    “PORT”:“3306”,端口号
    }
    }

注意:在使用数据库的时候,必须保证数据库的服务是开启的状态

net start mysql//开启Mysql数据库
create database sunck;
mysql -u root -p 进入mysql

  • 当进入pychram之后,我们可以使用自带终端来创建app应用(一个项目中可以创建多个应用,每个应用处理一种应用)

``在上一级文件夹下:
python manage.py startapp appname(我命名为myApp)

说明:
1. admin.py 站点配置
2. models.py模型
3. view.py视图
- 当app创建完成之后,需要在setting.py文件中配置

```python
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    "App",#添加我们创建的app注册一下
]
  • 在setting.py文件中

  • ALLOWED_HOSTS = ["*"]
    #允许所有人访问
    
  • 在setting.py文件中

    #设置语言
    LANGUAGE_CODE = 'zh-hans'
    #设置时区
    TIME_ZONE = 'Asia/Shanghai'
    

-定义一个模型:有一个表需要对应一个模型
   在models.py 引入from django.db import models
模型类要继承models.model类

class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default = True)
sage = models.IntegerField()
scontend = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
#关联外键
sgrade = models.ForeignKey(“Grades”)

此案例说明:不需要定义主键,在生成时自动添加
-在数据库中生成数据表
第一步:生成迁移文件(在migration目录下生成一个迁移文件,此时数据库中还没有生成数据库)
python manage.py makemigrations(还是在project目录下执行)
第二步:进行迁移
python manage.py migrate(还是在project目录下执行)
相当于执行了SQL语句创建表

-测试数据操作:
1.进入到python shell环境,需执行python manage.py shell
2.引入一些包 from myApp.models import Grades,Students
From django.utils import timezone
From datetime import *
4. 查询所有数据
格式:类名.objects.all()
Grades.objects.all()
5. 添加数据:
本质上创建一个模型类的对象实例
grade1 = Grades()
grade1.gname = “python04”
grade1.gdate = datetime(year=2019,month=11,day=3)
grade1.gboynum = 70
 grade1.ggirlnum = 11
grade1.save()//一定要保存一下
stu = Students()
stu.sname=“这一次”
stu.sgender=False
stu.scontend=“我叫次”
stu.sage=22
stu.sgrade=grade1
stu.save()

  1. 查看某个对象
    格式:类名.objects.get(pk=2)
    Grades.objects.get(pk=2)//第二个数据
  2. 修改数据
    格式: 模型对象.属性 = 新值
    grade2.gboynum = 60
    grade2.save()
  3. 删除数据:grades.delete()
    这是物理删除,数据库表中的数据被删除
  4. 获取关联对象的所有集合
    需求,获取python04班的所有学生
    对象名。关联的类名小写_set.all()
    Grade1.students_set.all()
  5. 创建曾志伟属于班级python04
    Stu3 = grade1.students_set.create(sname=u曾志伟’,sgender=True,scontend=u’我是曾志伟’,sage=111)
  • 启动服务器
    python manage.py runserver ip:port
    说明:ip可以不写
    端口号默认是8000
    python manage.py runserver
    注:这个是python写的轻量级的web服务器,仅仅在开发测试中使用
  • 运行成功,在浏览器访问
 http://127.0.0.1:8000/
 #会显示正常工作
  • Admin站点管理
1. 内容发布(负责添加、修改、删除内容)
 配置Admin应用(在setting.py中的INSTALLED.APPS中添加'django.contrib.admin'但是默认已经添加)
2. 创建管理员用户
python manage.py createsuperuser
依次输入用户名、邮箱、密码
http://127.0.0.1:8000/admin进入
汉化:在settings.py中
	LANGUAGE_CODE = 'zh-Hans'

	TIME_ZONE = 'Asia/Shanghai'
3. 管理数据表
修改admin.py 文件
	from .models import Grades,Students
	#注册
	admin.site.register(Grades)
	admin.site.register(Students)
	自定义管理页面

class GradesAdmin(admin.ModelAdmin):
#以下列表页属性
#显示字段
# list_display = [‘pk’,‘gname’,‘gdate’,‘ggirlnum’,‘gboynum’,‘isDelete’]
#过滤字段
list_filter = [‘gname’]
#搜索字段
search_fields = [‘gname’]
#分页
list_per_page = 5

#以下添加、修改页属性
#规定属性的先后顺序

fields = [‘ggirlnum’,‘gboynum’,‘gname’,‘gdate’,‘isDelete’]

#给属性分组
#注意fields与fieldsets不能同时使用
fieldsets = [
(“num”,{“fields”:[‘ggirlnum’,‘gboynum’]}),
(“base”,{“fields”:{‘gname’,‘gdate’,‘isDelete’}}),
]
admin.site.register(Grades,GradesAdmin)

4 关联对象
	要求:创建一个班级时,可以直接添加几个学生

class StudentsInfo(admin.TabularInline):
model = Students
extra = 2
class GradesAdmin(admin.ModelAdmin):
inlines = [StudentsInfo]

	5 布尔值显示问题(显示男女)
	
```def gender(self):
    if self.gender():
        return "男"
    else:
        return "女"
#设置页面列的名称
gender().short_description = "性别"
list_display = ['pk','sname','sage',gender,'scontend','sgrade','isDelete']

-视图的基本使用
 1.概述:
在Django中,视图对web请求进行回应
视图就是一个python的函数,在views.py中进行定义
定义视图:

from django.http import  HttpResponse
def index(request):
    return HttpResponse("sunck is goodluck!!!!!!") ```
  配置url:
  	修改projects目录下urls.py文件

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^’,include(‘myApp.urls’))
]

  
  	在maApp应用目录下创建urls.pywen文件
  

from django.conf.urls import url
from . import views

urlpatterns = [
url(r’^$’,views.index)
]

  模板的基本使用:
	·模板是HTML页面,可以根据视图中传递过来的数据进行填充
创建templates模板目录,在目录下创建对应项目的模板目录(project/templates/myApp)
·配置模板的路径:修改setting.py中的TEMPLATES
	```
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],#添加
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },```
	·定义俩模板grades.html和students.html
	`模板语法:
		{输出值,可以是变量,可以是对象属性}
或者是{%执行代码段%}

图示:  https://blog.csdn.net/weixin_43249914/article/details/84792113

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值