23.4.3. Django流程跑通

目录结构介绍

 1. web框架

  自己实现socket

    Tornado

  基于wsgi

    Django

  MVC/MTV

    mvc框架:

      controllers:处理用户请求

      views:放置html模板

      modals:操作数据库

    mtv框架:

      views:处理用户请求

      template:放置html模板

      modals:操作数据库


   2 django-admin startproject  mysite


   3 manage.py 管理我的django项目
   4 (1)启动django--python3
      -manage.py runserver 127.0.0.1:8002
      -manage.py runserver 8002
      -manage.py runserver
     (2)pycharm启动:1  跟上面一样
                  2 点绿色的箭头
      不是点右键运行
   5 停止 ctrl+c


   6 目录介绍
      settings--django全局配置文件
      urls---路由关系


app:
   命令:python3 manage.py startapp app01
   目录:
      migrations:数据库迁移的文件
      admin:后台管理相关
      apps:app配置相关
      models:模型,数据库相关,写一些类
      tests:测试相关
      views:视图函数


settings:
   DEBUG
   INSTALLED_APPS---》放app的名字
   MIDDLEWARE--》中间件
   TEMPLATES---》指定模板文件放的路径
   DATABASES---》指定连接的数据库


静态文件配置:(名字一定不能错)
STATICFILES_DIRS=[
    os.path.join(BASE_DIR, 'static'),
]




三件套:
# render 模板渲染
# HttpResponse 返回字符串
# redirect 重定向





  连接数据库、操作数据

        ORM是可以通过Django里面提供的功能

        执行命令:

          python manage.py makemigrations

          python manage.py migrate

          //数据库和相应的表已经创建完毕



    发送post请求示例

            点击submit按钮,发送post请求,url:127.0.0.1 8800/login/
                            def login(request):
                                if request.method=="POST":
                                     user=request.POST.get("user")
                                     pwd=request.POST.get("pwd")
                                     if 1:
                                         return
                                     else:
                                         return...
                                else:
                                    render(request,"login.html")


  操作数据库

        检测:

          models.类.objects.filter(user="wzc")

          models.类.objects.filter(user="wzc").count()

          wzc这个用户是否存在

          通过return redirect来进行跳转

        生产数据

          models.类.objects.create(user='数据',passwd='数据')

        获取数据:

          models.类.objects.all()