zoukankan      html  css  js  c++  java
  • 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'},
        }
      
    

      

  • 相关阅读:
    MySQL--字符集参数
    MySQL--字符集基础
    Cassandra基础2
    Cassandra基础
    Cassandra -- Cassandra 3.0版本安装
    Cassandra Demo--Python操作cassandra
    MySQL--批量插入导致自增跳号问题
    MySQL Disk--SSD和HDD的性能
    MySQL Lock--并发插入导致的死锁
    TCL-视图
  • 原文地址:https://www.cnblogs.com/nulige/p/6544014.html
Copyright © 2011-2022 走看看