Django--虚拟环境及orm基础

Django

虚拟环境 virtualenv

安装

pip install virtualenv
virtualenv testvir

安装wrapper

pip install virtualenvwrapper-win

新建虚拟环境

mkvirtualenv testvir2

进入虚拟环境

workon testvir2(testvir2是虚拟环境的名字)

查看所有虚拟环境

workon

退出虚拟环环境

deativate

Django目录结构

progectname:保存django项目的urls(url配置入口),settings(系统配置),wsgi(django启动的清单文件),init文件

templates:放置html文件

manage.py启动文件

————————————以上是pycharm自动生成的文件————————

还需要自己创建一个app文件

Tools-Run manage.py Takes

startapp message

右键-新建-static 用于存放css js image 文件

右键-新建-log 用于存放日志目录

右键-新建-media 用于存放用户上传文件

Django配置数据库

在settings中找到DATABADES

DATABASES = {
  'default':{
    'ENGINE':'django.db.backends.mysql',
    'NAME':"testdjango",#数据库的名字
    'USER':"root",#数据库名称
    'PASSWORD':"root",#数据库密码
    'HOST':"",#数据库的ip地址
    }
}

设置Mysql驱动

python2 安装pip install mysql-python

python2 如果有错误 可以参考 blog.csdn.net/u012882134/article/details/51934165

下载后pip安装

python3 安装PyMySQL

安装后再settings中进行导入包

python3中导入

import pymysql
pymysql.install_as_MySQLdb()

生成数据表

Tools-Run manage.py Takes

没有报错后输入

makemigrations

migrate

models

models.ForeignKey外键类型

models.CharField 字符串类型

​ 需要指明 max_length最大长度

​ 设置可以为空 null = True,blank = True

​ 设置默认值 default=”“

​ 如果不指明主键则自动创建一个id主键 自己创建主键 primary_key = True

models.EmalField Emal类型

models.DataTimeField 时间类型

models.IntegerField 整形

models.FileField 上传文件的文件类型

models.IPAddressField IP地址类型

models.ImageField 图片类型

Meta

​ db_table = “user_message” 数据表名称

​ verbose_name = u”用户信息” 设置后台显示的名称

​ verbose_name_plural = verbose_name 设置后台显示名称

​ ordering = “id” 根据id列进行倒序排列

django 的orm - django models

class UserMessage(models.Model):
    name = models.CharField(max_length=20,verbose_name=u"用户名")
    email = models.EmailField(verbose_name=u"邮箱")
    address = models.CharField(max_length=100,verbose_name=u"联系地址")
    message = models.CharField(max_length=500,verbose_name=u"留言信息")

    class Meta:
        verbose_name=u"用户留言信息"

在settings 中 添加设置

INSTALLED_APPS = [
  ……
  'message',
]

如果是python2 在models 中添加编码

python3则不需要

生成数据表

Tools-Run manage.py Takes

makemigrations messages
migrate message

进行增删改查

在views中

objects 是django 内置的管理器

objects.all()可以拿到数据库中所有的数据

from .models import UserMessage
all_message = UserMessage.objects.all() 
for message in all_message:
    print(message.name)

objects.filter()可以根据条件判断

all_message = UserMessage.objects.filter(name='zhangsan',address='北京')
    for message in all_message:
        print(message.id)

all_message = UserMessage.objects.filter(name=’zhangsan’,address=’北京’)的意思就是 拿到 name=zhangsan address = 北京的数据

user_message = UserMessage()
    user_message.name = 'lisi'
    user_message.message='helloworld'
    user_message.address='上海'
    user_message.email='2@2.com'
    user_message.save()

all_message = UserMessage.objects.filter(name='zhangsan',address='北京')
    # all_message.delete()#删除全部
    for message in all_message:
        message.delete()#删除单条

数据保存——前后台交互

在html的form表单中添加

{% csrf_token %}
def getform(request):

    if request.method =="POST":#用于判断是否是POST请求
        name = request.POST.get('name','')#get是用于取字典中的值这里的name 是在html页面中表单的name值
        message = request.POST.get('message','')
        address = request.POST.get('address','')
        email = request.POST.get('email','')
        user_message = UserMessage()
        user_message.name = name
        user_message.message=message
        user_message.address=address
        user_message.email=email
        user_message.save()
    return render(request,'form.html')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值