Django--虚拟环境及orm基础

来源:互联网 发布:雅典奥运 女排 知乎 编辑:程序博客网 时间:2024/06/16 09:00

Django

虚拟环境 virtualenv

安装

pip install virtualenvvirtualenv 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 pymysqlpymysql.install_as_MySQLdb()

生成数据表

Tools-Run manage.py Takes

没有报错后输入

makemigrationsmigrate

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 messagesmigrate message

进行增删改查

在views中

objects 是django 内置的管理器

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

from .models import UserMessageall_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')
原创粉丝点击