zoukankan      html  css  js  c++  java
  • DJango小总结一

    views.py
                
                def func(request):
                    # 包含所有的请求数据
                    ...
                    return HttpResponse('字符串')
                    return render(request, 'index.html', {''})
                    retrun redirect('URL')

    模板语言
                return render(request, 'index.html', {'li': [11,22,33]})
                
                {% for item in li %}
                    <h1>{{item}}</h1>
                {% endfor %}

    路由系统,URL
        1、url(r'^index/', views.index),    
           url(r'^home/', views.Home.as_view()),
        2、url(r'^detail-(d+).html', views.detail),  
        3、url(r'^detail-(?P<nid>d+)-(?P<uid>d+).html', views.detail)
           
           PS:
                def detail(request, *args,**kwargs):
                    pass
        
           实战:
               
                    url(r'^detail-(d+)-(d+).html', views.detail),

    根据名称生成url

    from django.urls import reverse

    url(r'^asdfasdfasdf/', views.index, name='i1'),

    url1 = reverse('i1')                              # asdfasdfasdf/

    url(r'^yug/(d+)/(d+)/', views.index, name='i2'),

    url2 = reverse('i2', args=(1,2,))                 # yug/1/2/

    url(r'^buy/(?P<pid>d+)/(?P<nid>d+)/', views.index, name='i3'),

    url3 = reverse('i3', kwargs={'pid': 1, "nid": 9}) # buy/1/9/

    xxx.html
                
                {% url "i1" %}               # asdfasdfasdf/
                {% url "i2" 1 2 %}           # yug/1/2/
                {% url "i3" pid=1 nid=9 %}   # buy/1/9/

    # 当前的URL
                request.path_info

    视图

    1、获取用户请求数据
            request.GET
            request.POST
            request.FILES
            PS:
                GET:获取数据                
                POST:提交数据
                
        2、checkbox等多选的内容
            request.POST.getlist()
        3、上传文件
            # 上传文件,form标签做特殊设置
            obj = request.FILES.get('fafafa')
            obj.name
            f = open(obj.name, mode='wb')
            for item in obj.chunks():
                f.write(item)
            f.close()

    ORM操作

    select * from tb where id > 1
        # 对应关系
        models.tb.objects.filter(id__gt=1)
        models.tb.objects.filter(id=1)
        models.tb.objects.filter(id__lt=1)
        
        创建类
        
        a. 先写类
            from django.db import models

            # app01_userinfo
            class UserInfo(models.Model):
                # id列,自增,主键
                # 用户名列,字符串类型,指定长度
                username = models.CharField(max_length=32)
                password = models.CharField(max_length=64)
            
        b. 注册APP

            INSTALLED_APPS = [
                'django.contrib.admin',
                'django.contrib.auth',
                'django.contrib.contenttypes',
                'django.contrib.sessions',
                'django.contrib.messages',
                'django.contrib.staticfiles',
                'app01',
            ]
        c. 执行命令
            python manage.py  makemigrations
            python manage.py  migrate

    注:

    Django默认使用MySQLdb模块链接MySQL
            主动修改为pymysql,在project同名文件夹下的__init__文件中添加如下代码即可:
                import pymysql
                pymysql.install_as_MySQLdb()

    字段的参数:
                null               -> db是否可以为空
                default            -> 默认值
                primary_key        -> 主键
                db_column          -> 列名
                db_index           -> 索引
                unique               -> 唯一索引
                unique_for_date    ->
                unique_for_month
                unique_for_year
                auto_now           -> 创建时,自动生成时间
                auto_now_add       -> 更新时,自动更新为当前时间
                
                    # obj = UserGroup.objects.filter(id=1).update(caption='CEO')
                    # obj = UserGroup.objects.filter(id=1).first()
                    # obj.caption = "CEO"
                    # obj.save()
                    
                choices              -> django admin中显示下拉框,避免连表查询
                blank             -> django admin是否可以为空
                verbose_name      -> django admin显示字段中文
                editable          -> django admin是否可以被编辑
                error_messages    -> 错误信息欠
                help_text         -> django admin提示
                validators          -> django form ,自定义错误信息(欠)
                
                
                创建 Django 用户:python manage.py createsuperuser

    根据类对数据库表中的数据进行各种操作
        
            一对多:
            
                a. 外检
                b.
                    外键字段_id
                c.
                    models.tb.object.create(name='root', user_group_id=1)
                    
                d.
                    
                    userlist = models.tb.object.all()
                    for row in userlist:
                        row.id
                        row.user_group_id
                        row.user_group.caption

  • 相关阅读:
    Win32 键盘事件
    好用的Markdown 编辑器及工具
    如何激发您孩子的学习动力和兴趣
    横扫芯片后,紫光欲进军公有云 数百亿资金已到位(大事表)
    C#更改控制台文本颜色
    I/O多路复用
    Python 安装 httpie
    Elasticsearch 5.0
    认证架构
    注册微信小程序
  • 原文地址:https://www.cnblogs.com/lijintian/p/7454533.html
Copyright © 2011-2022 走看看