django大体框架

django流程

  1. 使用pycharm创建一个python虚拟环境
  2. 点击file->settings->project interpreter->右上角的'+'号,搜索django,选中点击install package即可
  3. 上面我们创建了一个虚拟环境并将我们需要的包导入进去
  4. 接下来便可以创建我们的项目,在pycharm终端中执行django-admin startproject web和python manage.py startapp app来创建我们的项目和目录
  5. 现在配置项目,首先使用2步骤来导入pymysql库,在__init__.py添加如下代码
  6. import pymysql
    pymysql.install_as_MySQLdb()
  7. 配置settings如下
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app',
    ]
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                os.path.join(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',
                ],
            },
        },
    ]
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'web',
            'USER':'root',
            'HOST':'127.0.0.1',
            'PASSWORD':'123456789',
        }
    }
  8. 在web下的urls.py中如下
    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('app/',include(('app.urls','app'),namespace='app')),
    ]
  9. 在app的目录下创建urls.py并加入下面代码
    from django.urls import path
    from . import views
    urlpatterns=[
        path('index/',views.index,name='index'),
    ]
  10. 在app/views.py加入代码
    from django.shortcuts import render
    
    # Create your views here.
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("hello")
  11. 在你的mysql数据库中创建web数据库
  12. 在终端中执行 python manage.py runserver 7777
  13. 在浏览器中输入http://127.0.0.1/app/index即可

迁移数据库

上面简单的说明了一下一个项目的创建和运行

数据库的迁移可以使用命令python manage.py makemigrations来创建迁移文件,这个命令执行后会在migrations下创建一个新的迁移文件,但是并没有生成数据表,还需要使用python manage.py migrate命令来执行迁移文件才能生成数据表

我们来编写一个user表

在app的models.py下输入下面代码

from django.db import models

# Create your models here.
class user(models.Model):
    username=models.CharField(max_length=100)
    password=models.CharField(max_length=100)

然后在终端中输入python manage.py makemigrations和python manage.py migrate

我们在数据库中查看一下
mysql> show tables;
+----------------------------+
| Tables_in_web              |
+----------------------------+
| app_user                   |
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
11 rows in set (0.00 sec)

可以看到这个数据库里有很多的表,app_user是我们刚才创建的表,app表示应用名称,user表示类名
可以看到还有许多其他的表这是因为在settings里注册了很多的app  如下
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]

只有在这个列表里注册的应用才会生成迁移文件并且生成表,这就是为什么要将app添加进去

django架构

django使用的是MTV架构

浏览器请求的流程是,拿我们这个例子。

url为:http://127.0.0.1:7777/app/index/

首先会将请求的url去掉协议和主机名变为app/index/会到达web/urls.py,和urlpatterns里的元素进行匹配,会匹配到

path('app/',include(('app.urls','app'),namespace='app')),减去匹配到的字符串变为index/,会进入app/urls.py继续匹配,匹配到path('index/',views.index,name='index'),然后进入到views.py,执行index函数,这个函数返回一个HttpResponse对象给浏览器。
 

上面便是大体的流程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值