zoukankan      html  css  js  c++  java
  • DJango 前三天小结

    一 DJango 所有命令:

      1下载:   

    控制台:
    pip install django==1.11.18 ​pip install django==1.11.18 -i 源
    解释器:
    找到解释器,点击加号搜索django

      2创建项目;

    控制台:  
    当前创建文件的目录 django-admin startproject 项目名称 (这里创建的项目没有模板文件templates)
    pc创建:
     file-->newprojet-->django-->(里面可以直接编辑templatesw和app文件名)

      3 启动项目:

    控制台:
        切换到项目目录  python manage.py runserver #127.0.0.1:8000(默认的)
       ip和端口可以改:  .............192.168.1.1:80#192.168.1.1:80

      4 创建app :

    控制台:
        使用python自带控制台就不需要定义当前目录了,直接 manage.py startapp  app文件名
    pc:
    Tools-->run manage.py task -->startapp app名字
    app文件下的py文件:
      views.py (写函数)
      models(orm相关)
      admi.py(管理后台)
      apps.py
      tests.py(测试用)

      5 数据库迁移:

    python manage.py makemigrations  #会在migration文件下产生一个py文件将models变更记录保存
    python manage.py migrate # 同步到数据库

    二 django srttings配置

      


    NSTALLED_APPS = [ ​ 'app01' 或者 ‘app01.apps.App01Config’(用pc创建会自带这个) ] 
    数据库的配置
    
    ​    ENGINE: mysql
    
    ​    NAME: 数据库名称
    
    ​    HOST:  IP  
    
    ​    PORT: 3306
    
    ​    USER: 用户名
    
    ​    PASSWORD: 密码
    静态文件
    
    ​    STATIC_URL = '/static/'   # 别名  注意你的静态文件外接开头都要使用/static/
    ​ STATICFILES_DIRS = [ ​ os.path.join(BASE_DIR,'static'),(可以配置多个,但他会按顺序找,找到一个就不找了) 
    ​ os.path.join(BASE_DIR,
    'static1'), ​ ]
    中间件:
    
    ​    注释csrf的中间件      ——》 可以提交POST请求
    TEMPALTES
    
    ```
    'DIRS': [os.path.join(BASE_DIR, 'templates')]  # 检查你的模板配置是不是这个路径,一般没错
    ```

    三 django 使用mysql数据库:

      1控制台创库  

      2 配置; django默认使用他自己的 sqlite3数据库

      3 告诉django 使用pymysql连接数据库(

        在settings.py同级目录下__inin__,py中写

       import pymysql
       pymysql.install_as_MySQLdb() 

      4  在app下的models.py中写类(继承models.Model):

       

    from django.db import models
    
    class BookManage(models.Model):
    
        pid=models.AutoField(primary_key=True) # 设置主键 并且让其自增
        name=models.CharField(max_length=20,unique=True) #设置名字字段,并且让其唯一
    
        def __str__(self):
    
            return self.name

      5  执行数据库迁移的命令   

      python manage.py makemigrations  # 将models变更记录保存到migrations
    
       python manage.py migrate    # 将变更同步到数据库中

    四  get和 post

      get: 获取一个页面

        在地址栏里输入回车

        form 表单 默认就是get

        a标签

        重定向也算是get(跳转)

      get提交数据:  127.0.0.1:8000/edit_publisher/?pk=3&k1=v1

        获取get数据:  request.GET .get(''pk'') #返回的是一个类似字典的东西 所以可以直接通过get(键)来获取数据 ,也可以通过索引来取

      post: 提交数据:

        form表单

    五 orm (对象关系映射)

        对应关系:

           类------>表

           对象----->数据

           属性----> 字段

    from app01 import models # 先导入modes模块

    曾:

    models.Publisher.objects.create(name='xxxxx出版社')   ——》返回字符串对象

    查:

    ​    models.Publisher.objects.get(pk=3)     —— 》返回字符串对象  #dasdggfrg <class 'app01.models.BookManage'>
    
    
    ​    models.Publisher.objects.filter(pk=3)  ——》 返回单行对象列表 
    
    ​    models.Publisher.objects.all()      ——》 返回全部对象列表  

    删:

    models.Publisher.objects.get(pk=3).delete() 
    
    ​    models.Publisher.objects..filter(pk=3).delete() 

    改:

      

    obj = models.Publisher.objects.get(pk=3) # 返回的是对象
    
    ​    obj.name = 'xxxxx'  
    
    ​    obj.save() 

    六  模板语法:

      

    render(request,'模板的文件名',{ 'new_name': 'xxxxx','all_publisher' : all_publisher })
    
    1.变量
    
    {{  new_name  }}  ——》 xxxxx
    
    2.for循环
    
    {%  for i in all_publisher %}
    
    ​    {{  forloop.counter  }}
    
    ​    {{  i  }}
    
    ​    {{  i.name  }}
    
    ​    {{  i.pid }}   {{  i.pk }}
    
    {% endfor %}

        

        

      

  • 相关阅读:
    响应式后台管理模版
    js数组、对象、正则
    react视频入门
    JSON.parse() JSON.stringify() eval() jQuery.parseJSON() 的区别
    网站生产app的一些网址
    一个博客总结的css常见的兼容性问题
    Js倒计时
    移动端好的博客
    day_4(element对象、node的属性、操作dom树)
    js的常用对象及方法使用
  • 原文地址:https://www.cnblogs.com/systemsystem/p/10283375.html
Copyright © 2011-2022 走看看