s10_part3_django_basic.md

Posted rootid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了s10_part3_django_basic.md相关的知识,希望对你有一定的参考价值。

```https://www.bilibili.com/video/av24702867/?p=337
```
[TOC]
#django安装

```
mkdir -p ~/PycharmProjects/project/Django2.0
cd ~/PycharmProjects/project/Django2.0
virtualenv mysite-env
source mysite-env/bin/activate
pip install django==1.11.11
pip list
deactivate #退出虚拟环境
```
#初步创建django项目mysite

##startproject
```
django-admin startproject mysite
tree mysite

mysite/
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

```


##初识mysite.mysite.urls.py
cat urls.py

```
from django.conf.urls import url
from django.contrib import admin

#为了避免自己写http协议的socket,这里直接引用 django的HttpResponse
from django.shortcuts import HttpResponse

def test_url(request):  #自定义一个函数,request代表所有的http请求,可以是任务字符,通常习惯上使用request
    return HttpResponse("hello world!")   #返回一串字符


urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r‘^test_url/‘, test_url),
]

```

##启动django服务器
命令行中输入python manage.py runserver //启动服务器
再浏览器中输入:http://127.0.0.1:8000/test_url/
即可到返回的字符串:hello world!



##mysite.mysite.settings.py

```
settings.py中默认存在:BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

所有的html相关文件的设置都在这里
注意:填写DIRS采用这种内置函数的方式   ‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],
不要使用字符串拼接,因为不确定运行的操作系统的路径分隔符
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‘,
            ],
        },
    },
]
```
所以在BASEDIR(即这里的mysite)下新建一个文件夹templates,然后将html文件放置于这个文件夹中即可

##使用render返回网页

cat urls.py
```
from django.conf.urls import url
from django.contrib import admin

#为了避免自己写http协议的socket,这里直接引用 django的HttpResponse
from django.shortcuts import HttpResponse, render

def test_url(request):  #自定义一个函数,request代表所有的http请求,可以是任务字符,通常习惯上使用request
    return HttpResponse("hello world!")   #返回一串字符


def test_url2(request):
    return render(request,"url2.html")  #返回html文件

    #如果url2.html的位置是在templates下的某一个文件夹XX
    #那么改为:return render(request,"xx/url2.html") 即可


# 返回渲染的html与以下读取文件,返回字符串的效果相同
def test_url3(request):
    # with open("xx/url2.html",‘rb‘) as f:   #等价于下一写法
    with open("xx/url2.html",‘r‘,encoding=‘utf-8‘) as f:
        data = f.read()
    return HttpResponse(data)  



urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r‘^test_url/‘, test_url),   #前面部分为访问的url,后面为调用的函数名
    url(r‘^test_url2/‘, test_url2),
    url(r‘^test_url3/‘, test_url3),
]

```
##静态文件配置项STATICFILES_DIRS

默认此项配置位于settings.py的最后

```
#此项是静态文件保存目录的别名
STATIC_URL = ‘/static/‘

#添加如下静态文件项,将所有的静态文件(js,css,images)都放在下面配置的路径中

STATICFILES_DIRS = [
os.path.join(BASE_DIR,"static")

]

```



##startapp

```
cd mysite
python manage.py startapp blog

tree mysite
mysite/
├── blog
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

```

##帮助命令

```

python manage.py help //查看帮助命令
python manage.py migrate //初始化默认数据库
python manage.py createsuperuser //创建超级管理员

```

  

以上是关于s10_part3_django_basic.md的主要内容,如果未能解决你的问题,请参考以下文章

python2.0_s12_day10_rabbitMQ使用介绍

cAdvisor Prometheus container_cpu_load_average_10s具有两个值

cAdvisor Prometheus container_cpu_load_average_10s 有两个值

访问opencv矩阵CV_32S元素

[Usaco10Dec] Threatening Letter G - 后缀自动机,贪心

Python_day02_2018.7.3