Django简介(创建,配置,生成迁移文件,运行)

jabgo是一个重量型框架
主要目的:简便快捷开发
在这里插入图片描述
Django基于MVC模式,但属于MVT模型.

MVT模式
以下是MVT的流程图解释:
在这里插入图片描述

相关命令

命令作用
mkvirtualenv 虚拟环境名称 -p python版本创建虚拟环境
sudo pip install virtualenv安装虚拟环境
pip install django==1.11.11安装django
pip list查看第三方包
django-admin startproject 项目名称创建django项目
mkvirtualenv 虚拟环境名称创建虚拟环境
rmvirtaulenv 虚拟环境名称删除虚拟环境
workon 虚拟环境名称切换虚拟环境
deactivate退出当前环境
which python查找python环境
python manage.py startapp app名称创建app模块
python manage.py makemigration生成迁移文件
python manage.py migrate执行迁移文件
python manage.py createsuperuser创建管理员
python manage.py runserver启动运行django项目

Django的安装步骤

创建虚拟环境

虚拟环境
项目所需要的第三方软件环境相互隔离

mkvirtualenv django-py3 -p python3

注:创建虚拟环境必须在联网的状态下(不指认python3则默认安装python2)
在这里插入图片描述

安装虚拟环境

sudo pip install virtualenv

如果上面不行,则输入下面这行

sudo pip install virtualenvwrapper

如果上面都不行,则需设置支持虚拟化

安装django

在这里插入图片描述

创建django项目

在这里插入图片描述

项目中的相关文件及文件的作用

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190527203040465.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzE1ODA1Ng==,size_16,color_FFFFFF,t_70

启动django

在这里插入图片描述
注意:如果不指认端口,默认是8000(端口号在runserver后加)
成功后的界面
在这里插入图片描述

在url.py配置链接,配置路由方法一

直接导入:
在这里插入图片描述

配置路由方法二(分模块,更常用的方法)

路由可能会过多,所以就有第二种方法,按模块配置路由即分模块再集中.

在项目所在的同名文件夹的urls里面配置include(将各个模块的URL加载)
在各个模块的URL里面配置URL-VIEWS在这里插入图片描述在这里插入图片描述

模块相关文件及其作用

这里插入图片描述

创建模块之后,注册子模块,注册到同名文件夹的setting中,不配置则无法使用

在这里插入图片描述
还有配置python环境,修改为虚拟环境下的python:
在这里插入图片描述
成功后的页面
在这里插入图片描述

设置数据库并交互

如果你使用Django自带的数据库,这一步不需要

查找配置文件

在项目的同名文件夹下的setting.py文件内寻找下面地址在浏览器打开
在这里插入图片描述
找到下面文件复制
在这里插入图片描述
并粘贴在setting.py 文件Database下
在这里插入图片描述
把数据库配置成你自己的数据库信息
在这里插入图片描述
接下来,在项目同名文件夹下的__init_里面配置数据库的驱动信息
在这里插入图片描述

生成迁移文件

在这里插入图片描述

执行迁移文件

在这里插入图片描述在这里插入图片描述

创建超级管理员

在这里插入图片描述

修改语言

在这里插入图片描述

html加载数据库的内容

同上文操作,在urls.py添加

urlpatterns = [
    url(r'^index/', index),
    url(r'^userinfo/', userinfo),
    url(r'^show_userinfos/', show_userinfos)
]

在views.py添加:

def show_userinfos(request):
    # 查找所有的用户信息
    from user.models import UserInfo
    try:
        # 取出所有的数据
        # data = UserInfo.objects.all()
        print('这里打印的是所有的用户信息')
        # data = UserInfo.objects.get(id=1) # 一条数据
        # data = UserInfo.objects.count()  # 计数

        # 查找id不等于1的userinfo
        # __gt代表大于 __lt代表小于  __lte小于等于
        # 这些都返回列表对象
        # data = UserInfo.objects.filter(id__gt=1)

        # 查找带 小 的 
        # data = UserInfo.objects.filter(name__contains='小')

        # 查找姓王的人
        data = UserInfo.objects.filter(name__startswith='王')
    except:
        data = '不存在'
    finally:
        pass

    print(data)
    # context是构造上下文,网页需要的数据,必须是字典结构
    context = {'datas': data}
    return render(request, 'showuserinfos.html', context)

在文件夹templates创建一个新的网页showuserinfo.html:
里面有新的语言来提取数据库内容,要另外学习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>userinfos</h1>

<ul>
        {{ datas }}
{#    {%  for obj in datas %}#}
{#        <li>{{ obj.name }}</li>#}
{#        <li>{{ obj.phone }}</li>#}
{#        <li>{{ obj.addkey }}</li>#}
{#    {% endfor %}#}

</ul>
</body>
</html>

manage.py shell测试
进入环境以及文件夹之后,可以shell调试,记住写完之后要save():

>>> from user.models import *
>>> add = AddressInfo()
>>> add.add = '广州'
>>> add.save()
>>> user=UserInfo()
>>> user.name='白小姐'
>>> user.phone=18814882311
>>> user.addkey=add    
>>> user.save()
>>> 
>>> UserInfo.objects.all() 
>>> add.userinfo_set.all()

>>> from user.models import AddressInfo
>>> AddressInfo.objects.create(add='深圳')
<AddressInfo: 深圳>
>>> AddressInfo.objects.all()
<QuerySet [<AddressInfo: 苏州>, <AddressInfo: 杭州>, <AddressInfo: 上海>, <AddressInfo: 广州>, <AddressInfo: 深圳>]>

这里外键的添加方式是一个实例对象,即直接对象赋值给外键,

UserInfo.objects.all() // 这个是查询所有
add.userinfo_set.all() // 根据对象的外键查询
AddressInfo.objects.create(add=‘深圳’) // 添加表属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值