博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 学习笔记
阅读量:6848 次
发布时间:2019-06-26

本文共 3924 字,大约阅读时间需要 13 分钟。

官方文档

https://www.djangoproject.com

中文文档

https://docs.djangoproject.com/zh-hans/2.0/

 

django安装

sudo /usr/local/python37/bin/pip install Django==1.8.2

sudo /usr/local/python37/bin/pip install django-json-response --upgrade

django-admin --version
1.8.2
需要注意pip的全路径,如果使用某个python版本目录的pip,则会将django安装到相应的python目录中;如果直接使用pip,则会将django安装到系统
which django-admin
/usr/bin/django-admin
容器创建

django-admin startproject mydevops

 

应用创建

cd mydevops/

python manage.py startapp scanhosts

将应用加入容器

vim mydevops/settings.py

INSTALLED_APPS = (

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'scanhosts',
)

数据库的详细配置可以参考

https://docs.djangoproject.com/zh-hans/2.0/ref/databases/#mysql-notes

DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydevops',
        'USER': 'admin',
        'PASSWORD': 'mysqlpass',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'OPTIONS': {},
        'init_command':'SET storage_engine=INNODB,'
                        'SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED, autocommit=1,names "utf8"'
    },
}
数据库创建库与用户
create database mydevops;

grant all privileges on *.* to admin@'127.0.0.1' identified by 'mysqlpass';

flush privileges;

 

model模型

CharField        字符串类型

IntegerFiled     整数类型

DateTimeField 时间日期字段

ForeignKey     定义多对一关系

修改新创建应用的models.py文件

 
from django.db import modelsclass UserIPInfo(models.Model):    ip = models.CharField(max_length=40, default='', verbose_name=u'ip address', null=True)    time = models.DateTimeField(verbose_name=u"updated time", auto_now=True)    class Meta:        verbose_name = u'user access adress message table'        verbose_name_plural = verbose_name        db_table = "useripinfo"class BrowseInfo(models.Model):    useragent = models.CharField(max_length=100, default='', verbose_name=u'use agent message',null=True)    models.CharField(max_length=256, verbose_name=u"unique id", default="")    userip = models.ForeignKey('UserIPInfo')    class Meta:        verbose_name = u'user access adress message table'        verbose_name_plural = verbose_name        db_table = "browseinfo"
 

模块迁移

 生成迁移文件

[root@at2 mydevops]# python manage.py makemigrations

Migrations for 'scanhosts':
  0001_initial.py:
    - Create model BrowseInfo
    - Create model UserIPInfo
    - Add field userip to browseinfo
[root@at2 mydevops]# cd scanhosts/migrations/
[root@at2 migrations]# ls
0001_initial.py  __init__.py  __init__.pyc

生成库表,然后去数据库中验证

[root@at2 mydevops]# python manage.py migrate

mysql> desc browseinfo;+-----------+--------------+------+-----+---------+----------------+| Field     | Type         | Null | Key | Default | Extra          |+-----------+--------------+------+-----+---------+----------------+| id        | int(11)      | NO   | PRI | NULL    | auto_increment || useragent | varchar(100) | YES  |     | NULL    |                || userip_id | int(11)      | NO   | MUL | NULL    |                |+-----------+--------------+------+-----+---------+----------------+3 rows in set (0.00 sec)

 

模块更新

比如,添加一个字段,或者改变一个字段长度,首先改变models.py

useragent = models.CharField(max_length=200, default='', verbose_name=u'use agent message',null=True)

然后再次执行,即可完成变更

python manage.py makemigrations

python manage.py migrate

 django交互界面

$ python manage.py shell

>>> from scanhosts.models import UserIPInfo
>>> for item in UserIPInfo.objects.all():
...     print(item.__dict__)
...
{'_state': <django.db.models.base.ModelState object at 0x7f2d2690a908>, 'id': 1, 'ip': '127.0.0.1', 'time': datetime.datetime(2019, 6, 23, 7, 11, 30, 474131, tzinfo=<UTC>)}
{'_state': <django.db.models.base.ModelState object at 0x7f2d2690aa58>, 'id': 2, 'ip': '192.168.81.131', 'time': datetime.datetime(2019, 6, 23, 7, 17, 30, 121449, tzinfo=<UTC>)}
{'_state': <django.db.models.base.ModelState object at 0x7f2d2690aac8>, 'id': 3, 'ip': '192.168.81.1', 'time': datetime.datetime(2019, 6, 23, 7, 18, 6, 749511, tzinfo=<UTC>)}

 

转载于:https://www.cnblogs.com/perfei/p/11071969.html

你可能感兴趣的文章
管理或技术
查看>>
分配到弱属性;对象将在赋值之后释放
查看>>
java作用域public ,private ,protected 及不写时的区别
查看>>
until循环语句
查看>>
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
查看>>
提高用户体验方式:饥饿营销
查看>>
Java8中的LocalDateTime工具类
查看>>
Exchange 2013 PowerShell创建自定义对象
查看>>
RAID-10 阵列的创建(软)
查看>>
javaScript的调试(四)
查看>>
nginx不使用正则表达式匹配
查看>>
利用putty进行vnc + ssh tunneling登录
查看>>
js重定向---实现页面跳转的几种方式
查看>>
hadoop1.x作业提交过程分析(源码分析第二篇)
查看>>
默认安装vsftpd后
查看>>
《Redis设计与实现》读书笔记
查看>>
waiting for changelog lock.
查看>>
小白学爬虫-批量部署Splash负载集群
查看>>
你离BAT之间,只差这一套Java面试题
查看>>
laravel package 推荐,数据备份
查看>>