python基础7-Django基础篇

安装django

pip3 install django

1.创建django工程

django-admin startproject mysite        #mysite即工程名称 

2.目录解读

mysite
    - mysite                #对整个程序进行配置
        - init              #
        - settings          #配置文件
        - url               #URL对应关系
        - wsgi              #遵循WSGI规范,以后用 uwsgi + nginx
    - manage.py             #管理Django程序:
                            - python manage.py
                            - python manage.py startapp xx    
                            - python manage.py makemigrations
                            - python manage.py migrate

运行django

python manage.py runserver 127.0.0.1:8000

 

3.创建app

cd 工程名
python manage.py startapp cmdb

  

 

4.目录介绍

migrations          数据库修改表结构的记录
admin               Django为我们提供的后台管理
apps                配置当前app
models              orm(即关系对象映射),写指定的类,通过命令可以创建数据库结构
tests               单元测试
views               业务代码

  

 

5.模板路径

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',
            ],
        },
    },
]

注:在DIRS的列表里添加 os.path.join(BASE_DIR,  'templates')   ,我踩过坑是由于我看到最后一行,像是已经有了,就没看上面!

 

6.配置静态目录static

STATIC_URL = '/static/'
添加如下
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,  'static'),
)

调用静态文件如下:

    <link rel="stylesheet" href="/static/common.css" />

  

 

7.form表单需要提交遇到的问题

 

1)如图1:csrf问题

 

解决办法:先将settings.py中MIDDLEWARE内关于csrf的配置注释掉

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

  

2)如图2:urls.py中url

urlpatterns = [
path('admin/', admin.site.urls),
path('login/',views.login),
path('home/', views.home),
]

与form中action的

<form action="/login/" method="post">  url后面的那个 “/” 要保持一致,要有都有,要无都无

 

8.定义路由规则  urls.py

 

9.定义视图函数  app下views.py

 

10.模板渲染

  特殊的模板语言

第一种 {{ 变量名 }}

第二种 for循环 特别注意{}和%无间隔,困扰半天

{% for %}

{% endfor %}

第三种条件:
{% if %}

{% endif %}


第四种:当然for或if均可以嵌套的

 

11.

 

12.

 

13.

 

14.

 

15.

 

16

 

17.

 

18.

 

19.

 

20.

 

posted @ 2018-02-22 09:29  larlly  阅读(91)  评论(0)    收藏  举报