Tools
首页
画图
音乐
采集
记事
博客
实验室
登录
lypeng
146
文章
11
分类
46
记事
分类
生活-[23]
Linux-[24]
前端-[9]
数据库-[16]
PHP-[31]
git-[7]
其他-[6]
python-[20]
算法-[4]
React-Native-[4]
中草药-[2]
广告位1
广告位2
首页
/ python
返回列表
django体验(一)跟着文档走 part1+part2
阅读:740
发布:2018-08-16
作者:lypeng
django体验 官方文档地址:`https://docs.djangoproject.com/en/2.1/intro/tutorial01/` 下面跟着文档一步步走! [TOC] # 一、基础部分 ## 1. 安装 pip install django # 默认装的2.1(当前时间2018-08-15) python -m django --version # 查看版本 return 2.1 ## 2. 创建项目 cd e:/www/test/python django-admin startproject mysite 创建完成,查看结构 ``` mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py ``` ## 3. 启动server cd mysite python manage.py runserver 没有任何提示,官方说好的提示呢? 默认运行在http://127.0.0.1:8000 浏览器打开,默认界面还是很漂亮的,简洁清爽 端口与地址可以自定义 python manage.py runserver 127.0.0.1:9005  ## 4. Creating the Polls app > 创建一个polls(民意调查)应用 > Projects vs. apps两者对比 > A project can contain multiple apps. An app can be in multiple projects. python manage.py startapp polls # 创建polls app ``` polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py ``` ## 5. 编写view /mysite/polls/views.py ``` from django.shortcuts import render,HttpResponse #注意这里要加上HttpResponse否则报错,无法返回hello world 返回看文档,竟然是我看漏了,这个render是默认生成的 def index(request): return HttpResponse("Hello, world. You're at the polls index.") ``` ## 6. 建立路由 新建/mysite/polls/urls.py ``` from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] ``` 再mysite/urls.py中包含这个路由文件 ``` from django.contrib import admin from django.urls import include,path #这里多了个include urlpatterns = [ path('polls/', include('polls.urls')), #这一行是新增的 path('admin/', admin.site.urls), ] ``` > >When to use include() > >You should always use include() when you include other URL patterns. admin.site.urls is the only exception(例外) to this. ## 7. 启动server查看效果 python manage.py runserver 127.0.0.1:9005 #启动server 输入网址:`http://127.0.0.1:9005/polls/` 查看效果 我这里报错了:`name 'HttpResponse' is not defined` 回到第五步,原因没有导入http响应包,查看文档有,我疏忽了 重新运行server,OK 注:网址区分大小写,不会自动转小写 --------- # 二、数据库 ## 1. 配置与初始化 >By default, the configuration uses SQLite. >SQLite is included in Python, so you won’t need to install anything else to support your database. >If you’re using SQLite, you don’t need to create anything beforehand - the database file will be created automatically when it is needed. django默认使用sqlite,不需要安装就可以用了,并且数据库文件会自动创建在需要的时候,所以不需要建库 这里就用sqlite好了,也一直想了解下的 a. 修改时区,/mysite/settings.py `TIME_ZONE = 'Asia/Shanghai'` b. 初始化表 `python manage.py migrate` ``` 如果用mysql,配置如下 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dbname', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } } ``` ## 2. 安装个可视化工具 sqlite工具我也不知道有哪些,百度一个sqlitestudio `https://sqlitestudio.pl/index.rvt`下载个可视化工具,查看下 下载地址:`https://sqlitestudio.pl/files/sqlitestudio3/complete/win32-inst/InstallSQLiteStudio-3.2.1.exe` 33.25Mb 需要安装,安装后,62.8M 截图如下:  ## 3. 创建models 修改polls/models.py,每张表都继承了models.Model 两张表:问题表(标题,发布时间),选项表(问题,选项,票数) ``` from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) ``` ## 4. 修改配置 settings.py ``` INSTALLED_APPS = [ 'polls.apps.PollsConfig', #新增 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] ``` 运行`python manage.py makemigrations polls`,会把表模型数据保存到polls/migrations文件夹中 `python manage.py sqlmigrate polls 0001`, 解析migrations中的0001为SQL `python manage.py migrate` 再次初始化,可看到数据库多了两张表 ## 5. 体验数据库API `python manage.py shell` ``` from polls.models import Choice, Question from django.utils import timezone q = Question(question_text="What's new?", pub_date=timezone.now()) q.save() q.pub_date Question.objects.get(pk=1) Question.objects.get(id=1) Question.objects.all() ``` -------------- # 三、Django自带的admin ## 1. 创建管理员账户 `python manage.py createsuperuser` > Superuser creation skipped due to not running in a TTY.You can run `manage.py createsuperuser` in your project to create one manually. 不懂了,linux有tty1,tty2等等,windows是cmd命令行,powershell,那我是不是需要在powershell中运行? 测试结果,cmd与powershell都可以,而我是在git-bash中运行的报错 ## 2. 登录后台 `http://127.0.0.1:9005/admin/` 账号:admin 123456 ## 3. 注册question到admin 编辑polls/admin.py ``` from django.contrib import admin from .models import Question admin.site.register(Question) ``` 刷新后台,OK了~  # 四、更多内容,下一篇继续
------本文结束
感谢阅读------
上一篇:
python案例(四) 图片批量缩放程序,并打包为exe
下一篇:
django体验(二)跟着文档走 part3+part4