相比于python其他的Web框架,django的功能是最完整的,包涵服务发布,路由映射,模板编程,数据处理一整套功能。因此django模块之间耦合紧密,不容易进行拓展,但是django的orm用着非常舒服!这给开发带来了很大的便捷性。
demo步骤
- 进入开发的python虚拟环境 使用
activate
命令。 - 安装django
pip install django
。查看安装是否成功conda --version
- 初始化项目。
切入到想要放置项目的文件夹,在cmd中输入django-admin startproject testserver
. testserver为站点名称,可任意修改 - 初始化应用。
进入生成的testserver文件路径,在cmd中输入,python manage.py startapp testapp
. testapp为应用名称,可任意修改。 - 修改testserver/testserver文件夹中的urls.py文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from django.conf.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
url(r'testapp/',include('testapp.urls')),
]
- 在testserver/testapp文件夹下修改views.py文件
from django.shortcuts import HttpResponse
def hello(request):
return HttpResponse("<h1>hello world</h1>")
- 在testserver/testapp文件夹下新建urls.py文件
from django.conf.urls import url
from django.contrib import admin
from testapp import views
urlpatterns = [
url(r'', views.hello,name="hello"),
]
- 启动服务器。
在testsever路径下,用cmd输入python manage.py runserver 8000
- 查看结果。
在浏览器中输入http://localhost:8000/testapp/
就可以看到hello world了
深入学习
1.在testserver/testapp路径下的常用文件,
__init__.py
没有内容,使app成为一个python包。
一定不要删,之后文件夹里的__init__.py也都不要删,不然会bug
admin.py 管理站点模型
models.py 用来添加模型层数据类,就是定义orm的地方
views.py 定义url响应函数,网页的跳转主要就靠这个文件,很重要
2.添加网页步骤
- 在testserver/testapp下添加文件夹templates
- 在templates文件中添加html文件,如hello.html,同样输入
<h1>hello world</h1
- 修改testserver/testapp下views.py文件
from django.shortcuts import render
from django.shortcuts import HttpResponse
def hello(request):
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
return render(request,os.path.join(PROJECT_ROOT,'testapp/templates','hellp.html'))
- 修改testserver/testserver下setting.py文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 修改此行
'DIRS': [os.path.join(BASE_DIR, 'testapp', 'templates').replace('\\','/')],
'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',
],
},
},
]
- 重新访问服务器
ps: 通过url添加参数
- url修改为,
url(r'(\d+)', views.hello,name="hello"),
- hello函数修改为
def hello(request,num):
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(num)
return render(request,os.path.join(PROJECT_ROOT,'testapp\\templates','hello.html'))
8.重新访问, http://localhost:8000/testapp/3
,即可在cmd看到数字
3. 添加模型类步骤
- 注册app,告诉django需要安装哪些app的模型。
在testserver/testserver文件夹下settings.py文件修改代码。
INSTALLED_APPS = [
'testapp.apps.TestappConfig' #新增行,TestappConfig替换为apps.py文件的类名称
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
- 定义模型类
在testserver/testapp文件夹下的models.py 文件中,添加一些模型定义的代码,如
from django.db import models
class trainingTask(models.Model):
oid = models.IntegerField(primary_key=True, db_column='FId')
trainingName = models.CharField(max_length=200)
trainingDataFile = models.CharField(max_length = 200)
typeOfModel = models.CharField(max_length = 100)
onTraining = models.IntegerField(default=-1)
uploadTime = models.DateTimeField(auto_now="True")
username = models.CharField(max_length=128,default = "")
- 移植数据库
在testserver路径下cmd输入,python manage.py makemigrations testapp
,再输入python manage.py migrate
,数据库中就添加成功该模型了。
To be continued…