django的来一个orm的过程
【摘要】
0.通用命令
#安装的所有包
pip list
12
1.安装python3
https://www.python.org/downloads/
2.配置环境变量
C:\Python37-32
...
0.通用命令
#安装的所有包
pip list
- 1
- 2
1.安装python3
https://www.python.org/downloads/
2.配置环境变量
C:\Python37-32
C:\Python37-32\Scripts
- 1
- 2
- 3
3.安装虚拟环境(python3.3以上版本)
windows平台
python3 -m venv . #在当前目录下创建虚拟环境
- 1
进入当前Scripts目录下,执行activate.bat,如下图表示激活成功
linux平台
python3 -m venv . #在当前目录下创建虚拟环境
source bin/activate
- 1
- 2
3.安装django
首先进入虚拟环境
pip install django
django-admin version
- 1
- 2
5.创建项目
django-admin startproject myprj
cd myprj
- 1
- 2
6.安装mysql包
pip install mysql-python
- 1
在mysql中创建数据库
shou databases
create database myprj charset =utf8
use myprj
show tables
- 1
- 2
- 3
- 4
7.配置mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test2',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '数据库服务器ip,本地可以使用localhost',
'PORT': '端口,默认为3306',
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
demo
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myprj',
'USER': 'root',
'PASSWORD': 'mysql',
'HOST': 'localhost',
'PORT': '3306',
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
可以查看这个目录
C:\Python37-32\Lib\site-packages\django\db\backends
- 1
8.创建应用
-创建app
python manage.py startapp booktest
- 1
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'booktest',
]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 使用数据库生成模型类(不好用)
python manage.py inspectdb > booktest/models.py
- 1
9.创建一个模型
修改booktest\model.py
from django.db import models
class BookInfoManager(models.Manager):
def get_queryset(self):
return super(BookInfoManager,self).get_queryset().filter(isDelete=False)
def create(self,btitle,bpub_date):
b=BookInfo()
b.btitle=btitle
b.bpub_date=bpub_date
b.bread=0
b.bcommet=0
b.isDelete=False
return b
class BookInfo(models.Model):
btitle=models.CharField(max_length=20)
bpub_date=models.DateTimeField(db_column='pub_date')
bread=models.IntegerField(default=0)
bcommet=models.IntegerField(null=False)
isDelete=models.BooleanField(default=False)
class Meta:
db_table='bookinfo'
books1=models.Manager()
books2=BookInfoManager()
@classmethod
def create(cls,btitle,bpub_date):
b=BookInfo()
b.btitle=btitle
b.bpub_date=bpub_date
b.bread=0
b.bcommet=0
b.isDelete=False
return b
class HeroInfo(models.Model):
hname=models.CharField(max_length=10)
hgender=models.BooleanField(default=True)
hcontent=models.CharField(max_length=1000)
isDelete=models.BooleanField(default=False)
book=models.ForeignKey(BookInfo)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
#生成迁移
manage.py makemigrations
#生成表
manage.py migrate
- 1
- 2
- 3
- 4
我们生成的表
hero.book.id是获取英雄对象
hero.book_id是获取英雄对象的bookid关联着bookinfo表的id
10.
文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。
原文链接:yujiang.blog.csdn.net/article/details/90631703
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)