• python 自动化之路 day 19 Django基础[二]


    Django


    - 路由系统 url.py
    - 视图函数 views.py
    - 数据库操作 models.py
    - 模板引擎渲染
    - HttpReponse(字符串)
    - render(request,'/path/a.html',{'name':'root'})

    一、示例:用户基本CURD

    1.数据库设计

    id hostname ip port status

    2.功能的实现

    预备:
    创建project django-admin startproject mysite
    创建app cd mysite
    python manage.py startapp app01
    配置模板路径 settings.py
    TEMPLATE
    DIRS: [os.path.join(BASE_DIR,'templates'),]
    配置静态文件 settings.py
    STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
    )

    二、路由系统 urls.py

    a. /^servers$ -> servers
    b. url(r'^edit_user_new-(?P<nnid>d+).html$', views.edit_user_new),
    c. url(r'^edit_user_new-(d+).html$', views.edit_user_new,name='bbb'),
    {% url "bbb" 1 %} ==> edit_user_new-1.html
    d. url(r'^edit_user_new-(?P<nnid>d+).html$', views.edit_user_new, name='nnn'),
    {% url "nnn" nnid=1 %} ==> edit_user_new-1.html
    e.
    主urls.py
    url(r'^cmdb/', include('app01.urls')),
    url(r'^config/', include('app02.urls')),
    app01 urls.py
    ...
    app02 urls.py
    ...

    三、视图函数 views.py


    获取请求信息:
    request.POST {'username':'root'..}
    request.GET
    request.FILES
    request.method
    request.body = username=root;age=18;gender=male

    响应结果:
    return HttpReponse(..)
    return render(request,'path/a.html',{})
    return redirect('http://www.baidu.com')

    四、Django数据库操作

    1. 类 --> 数据库的表

    字段 --> 列
    对象 --> 一行数据
    class UserInfo(models.Model):
    nid = models.AutoField(primary_key=True)
    username = models.CharField(max_length=32)
    pwd = models.CharField(max_length=64)
    age = models.IntegerField()


    2. 根据app的models.py生成数据库表

    python manage.py makemigrations
    python manage.py migrate

    PS: settings注册app名字
    注意:
    MySQL
    - 手动创建库名
    - settings.py 中配置
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'dbname',
    'USER': 'root',
    'PASSWORD': 'xxx',
    'HOST': '',
    'PORT': '',
    }
    }
    - Django默认链接MySQL:
    - MySqlDB
    - pymysql
    在配置目录的init.py中:
    import pymysql
    pymysql.install_as_MySQLdb()


    3. 数据库基本操作

    a. 查
    models.tb.objects.all()
    models.tb.objects.filter(nid=1)
    models.tb.objects.filter(nid=1).first()

    b. 增
    models.tb.objects.create(...)

    obj = models.tb(...)
    obj.save()
    c. 删
    models.tb.objects.all().delete()
    models.tb.objects.filter(nid=1).delete()
    d. 改
    models.tb.objects.all().update(...)
    models.tb.objects.filter(nid=1).update(...)

    五、模板引擎

    特殊规则:
    - 1
    {{k1}}

    - 2
    {% if a == 123 %}

    {% else %}

    {% endif %}

    - 3
    {% for item in LIST %}
    {{item}}
    {% endfor %}
    - 4
    # 索引:字典.k1 列表.1

    - 5.自定义模板方法
    - filter: 在if条件中做条件时
    - simple_tag: 在页面仅显示内容时

    - 6. extends
    - 模板的继承

    - 7. include
    - 导入公共组件

    六、Cookie

    - 是用户浏览器上的一个键值对
    - 设置超时时间

    利用cookie可实现:
    - 登录验证
    - 页面显示条数
    - 拖动位置..

    两大忌讳:
    - 敏感信息
    - 简单
    七、Session
    - 放置在服务器端的键值对

    session = {
    'asdfasdfasd': {'username':'hailong'},
    'asdfasdfasdf': {username:'feinikesi'},
    }



  • 相关阅读:
    记一次网络实践
    python中得公有和私有——私有函数和公开函数_补充完整
    机器学习 之LightGBM算法
    机器学习 之XGBoost算法
    机器学习 之梯度提升树GBDT
    机器学习 之KNN近邻法
    机器学习之 XGBoost和LightGBM
    《剑指offer》 之二叉树
    随机森林RF、XGBoost、GBDT和LightGBM的原理和区别
    机器学习之决策树_CART算法
  • 原文地址:https://www.cnblogs.com/yangliheng/p/6542436.html
Copyright © 2020-2023  润新知