一个Django简易项目的操作关键
建立一个文件夹,控制台定位到该文件夹,
python -m django --version
确认Django的版本,
django-admin startproject trashbin
建立一个django工程。目录结构图如下:
trashbin/
manage.py
trashbin/
__init__.py
settings.py
urls.py
wsgi.py
在manage.py文件的位置,输入
python manage.py runserver 80
这样运行一个本地网站,127.0.0.1显示It worked!
使用PyCharm开发项目。打开PyCharm,打开,文件夹位置定位到manage.py所在的文件夹,这个我们定义为项目的工作目录。
使用PyCharm的调试器,菜单“run”-》“Edit Configurations”,左侧点击绿色的加号,选择python,Name填写debug-server,右侧Script填写manage.py
ScriptParameters填写runnserver 80,working directory填写项目的工作目录。
python manage.py startapp dispatch
创建一个新的APP,名称叫dispatch
为dispatch创建一个简单的view,并且使用URL路由。
在dispatch/views.py文件添加
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from django.http import HttpResponse def HelloWorld(request): return HttpResponse('Hello,you are at HelloWorld Index Page!1!!!')
dispatch下新建urls.py文件添加
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from django.conf.urls import url from . import views urlpatterns=[ url(r'^$',views.HelloWorld,name='hello') ]
将工作目录的urls.py修改为如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url(r'^hello/',include('dispatch.urls')), url(r'^admin/', admin.site.urls), ]
这样127.0.0.1/hello看到Hello,you are at HelloWorld Index Page!1!!!
关于URL的正则表达式,参阅如下网站
http://www.cnblogs.com/chuxiuhong/p/5885073.html https://docs.djangoproject.com/en/1.11/topics/http/urls/
默认数据库是sqlite3,这里修改成mysql,注意MySQL建立一个新的数据库的时候,字符集必须使用utf8
create database django DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
工作目录中的settings.py文件修改如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django', 'USER':'root', 'PASSWORD':'asweklwfek', 'HOST':'127.0.0.1', 'PORT':'3306' } } 在__init__文件中添加 import pymysql pymysql.install_as_MySQLdb() 注意:生产环境中 ALLOWED_HOSTS = []修改成 ALLOWED_HOSTS = ['*']
同时,settings.py中的语言和时区的修改
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
ORM的使用
在APP dispatch的文件models.py中,添加一个类,对应了数据库中的一个表,代码如下
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from django.db import models # Create your models here. class BinStatus(models.Model): gps_serial= models.CharField(max_length=50,primary_key=True) lng=models.CharField(max_length=50) lat=models.CharField(max_length=50) full=models.BooleanField(default=False) low_bat=models.BooleanField(default=False) no_bat=models.BooleanField(default=False)
要激活模型,django会使用settings.py文件中INSTALLED_APPS中的APP
查看dispatch APP中的app.py文件,可以知道类名是DispatchConfig,所以在INSTALLED_APP中添加
INSTALLED_APPS = [
...
'django.contrib.staticfiles',
'dispatch.apps.DispatchConfig'
]
使用命令,告诉系统你要做哪些变动
python manage.py makemigrations dispatch
使用命令来应用。
python manage.py migrate
为了在admin后台中修改相关数据库,相关的类需要在APP的admin.py文件中注册。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from django.contrib import admin from .models import BinStatus # Register your models here. admin.site.register(BinStatus)
然后创建一个后台用户
python manage.py createsuperuser
外部调用Django的ORM
代码如下
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import sys import os from django.core.wsgi import get_wsgi_application sys.path.extend([r'D:\pythonWeb\trashbin',]) os.environ.setdefault("DJANGO_SETTINGS_MODULE","trashbin.settings") application = get_wsgi_application() from dispatch.models import BinStatus print(BinStatus.objects.all())