```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 //创建超级管理员 ```
原文地址:https://www.cnblogs.com/rootid/p/9814042.html
时间: 2024-10-27 12:43:47