路由系统
   
   1. 伪静态:
     https://www.cnblogs.com/linhaifeng/articles/7133167.html
   
     伪静态的原因:
     a. 美观
     b. seo (搜索引擎优化技术): 就是研究各大搜索引擎的收录规则
   2. 路由分发: 
    url:
        通过正则匹配完成路由的分发
 
   3.  django创建app:
    
    python3 manage.py startapp 自定义app名称
    
    app02:
     
     admin.py : 写和django-admin相关的配置
创建app 将功能分快化易于维护
   
   4.路由分组
    
    总urls.py;
     url(r'^app02/', include('app02.urls')),
     url(r'^app03/', include('app03.urls')),
    
    分appurls.py:
    
     from app03 import views
     urlpatterns = [
      url(r'^students/', views.studnets)
     ]
     
  
  函数视图
  
   FBV:
    
    function based view
   
   CBV:
    
    class based view
    
    urls.py:
     url(r'^login/', views.Login.as_view()),
    
    views.py:
     from django.views import View
     class Login(View):
      def get(self, request):
       return render(request, "login.html")
      def post(self, request):
       uname  = request.POST.get('username')
       print(uname)
       return HttpResponse('ok')
   
   
    原理:
     'get': 请求数据
     'post':提交数据
     'delete': 删除数据
     'put': 更新数据
     'patch': 更新部分数据
  
     ps:
      form表单提交 只支持get、post 
      ajax支持
     
     核心:
          def dispatch(self, request, *args, **kwargs):
        super(Login, self).dispatch(request, *args, **kwargs)
     
     
     
  ORM (操作数据库pymysql)
  
   1. orm配置:
    a.创建数据库
    
    b.配置mysql数据库的链接:
     DATABASES = {
      # 'default': {
      #     'ENGINE': 'django.db.backends.sqlite3',
      #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
      # }
      'default': {
       'ENGINE': 'django.db.backends.mysql',
       'NAME': 's8day61',    ## 数据库名称
       'USER': 'root',
       'PASSWORD': '123',    ## 安装 mysql 数据库时,输入的 root 用户的密码
       'HOST': '127.0.0.1',
      }
     }
    
    c. 注册app:
     INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'app02',
      'app03'
     ]
     
    d. 需要将mysqldb换成pymysql
     python3:
      pymysql
     
     python2:
      MySQLdb
     
     app下的 __init__.py文件
      
      import pymysql
      pymysql.install_as_MySQLdb()
     
    
    e:创建表 命令:
     
     python  manage.py makemigrations
     
     python manage.py migrate
  
posted on 2019-07-15 20:34  郝俊连城  阅读(94)  评论(0编辑  收藏  举报