django学习

# 安装django  
####   指定版本
    `pip install django==1.11.28` 
#### 不指定版本
    `pip install django`

# 通过命令行创建 django  django-admin startproject 文件名

# 目录介绍
     mysite/
     -->manage.py  #管理文件
     -->mysite  #项目目录
        --->_init_.py 
        --->settings.py #配置文件
        --->urls.py # 路由 --> url和函数的对应关系
        --->wsgi.py # runserver命令就使用wsgiref模板做简单的web server

# 运行django 项目
####    命令行: `python manage.py runserver ` # 127.0.0.1 :8000
####    命令行: `python manage.py runserver 80` # 127.0.0.1 :80
####    命令行: `python manage.py runserver 0.0.0.0:80` # 0.0.0.0:80

## 配置sttings
### 静态文件
    STATIC_URL = 'static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
### 模板文件
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [BASE_DIR / 'templates']
            ,
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
### app 
    INSTALLED_APPS #添加注册的app
    # 'app01', #直接写app的名称
    'app01.apps.App01Config', #推荐写法
### 中间件
  #### 'django.middleware.csrf.CsrfViewMiddleware', #过滤跨站请求伪造保护 可以提交post请求

## urls.py  路径和函数的对应关系
    from app01 import views

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('index/', views.index),
        path('login/', views.login),
    ]
## views.py 写函数
    def login(request):
        # 业务逻辑
        # request.method  请求方法
        # request.POST  post请求
        # request.GET  get请求
        if request.method =='POST':
            user = request.POST.get('user')
            pwd = request.POST.get('pwd')
            print(user, pwd)
            # if user=='Yingnan.Zhang' and pwd =='1234':
            if models.User.objects.filter(username=user, password=pwd):
                # return HttpResponse('登录成功')
                # 重定向
                # return redirect('/index')
                return render(request, 'index.html')
        # 返回结果
        # 返回一个字符串
        # return  HttpResponse('index')
        # 返回一个HTML页面
        return render(request, 'login.html')


# app的创建和注册
####   方式一:
      运行`python manage.py startapp app名` 进行创建
####   方式二:
      ->Tools->Run manage.py Task-> startapp app名 
####   方式三:
      新建django项目时 输入app名
#### 文件信息
    app名
    -->#admin管理后台 admin.py 
    --># app  app.py
    -->#orm models.py 
    --># 函数 viwes.py


# 使用orm
    orm 对象关系映射 通过操作类,对象的方式去操作数据库
    orm对应关系
    类 --> 表
    对象  --> 数据行(记录)
    属性 --> 字段
## 1.在settings中配置数据库连接

   DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }

## 2.在app下的models.py中写类:

   class User(models.Model):
        username = models.CharField(max_length=32)  #varchar
        password = models.CharField(max_length=32)  #varchar
   
## 3. 执行数据库迁移的命令
 ### 检测所有app下的models.py文件有什么变化,将变更记录制作成迁移文件
   `python manage.py makemigrations` 
 ### 数据库的迁移 将变更记录同步到数据库中
   `python manage.py migrate `
### orm 操作
    # 查询所有
    ret = models.User.objects .all()
    # 输出信息 和类型
    print(ret, type(ret))
    # 输出 单个是用户名 和密码
    for i in ret:
        print(i, i.username, i.password)
      
    # ret = models.User.objects.get(username='admin') #获取一条数据 获取不到或者多条数据 就报错
    ret = models.User.objects.filter(username='admin') #获取满足条件的对象
## 4.使用mysql数据库的流程
### 1. 创建数据库
### 2. 编写配置文件settings
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'netshop',
            'HOST': 'ip',
            'PORT': '3306',
            'USER': ' ',
            'PASSWORD': ' ',
        }
    }
### 3. 使用pymyql 的模块连接数据库
    习惯写入到与项目同名的的文件夹下的 __init__.py中
    import pymysql
    pymysql.version_info = (1, 4, 13, "final", 0)
    pymysql.install_as_MySQLdb()
### 4. 在app下的models.py中写类:
   class User(models.Model):
        username = models.CharField(max_length=32)  #varchar
        password = models.CharField(max_length=32)  #varchar
### 5.执行数据库迁移的命令
 #### 检测所有app下的models.py文件有什么变化,将变更记录制作成迁移文件
   `python manage.py makemigrations` 
 #### 数据库的迁移 将变更记录同步到数据库中
   `python manage.py migrate ` 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值