1 django 快速上手
1 虚拟环境
使用管理员启动cmd,进入virtualenv安装目录C:\Program Files\Python3\Scripts(或配置环境变量)
新建虚拟环境文件夹:mkvirtualenv lizi_auto_test
虚拟环境应用:workon demo lizi_auto_test
2 django安装
pip install django -i https://pypi.doubanio.com/simple
3 创建及启动项目
创建项目:
django-admin startproject lizi_auto_test (可以使用pycharm创建)
django-admin startproject lizi_auto_test . (默认当前目录为django根目录) 启动项目:python manage.py runserver (ip:端口号可选) 项目地址:http://127.0.0.1:8000/ (默认) 后台地址:http://127.0.0.1:8000/admin 同步数据库:python manage.py migrate (默认是sqlite数据库) 创建后台用户:python manage.py createsuperuser 登录后台:admin admin
创建项目后,可以使用pycharm打开项目,interpreter选择新建的虚拟环境,terminal中使用workon进入虚拟环境
如果报错workon找不到,重启下pycharm
4 创建应用和数据库
- 创建应用
python manage.py startapp blog
- 配置应用(在setting文件中配置)
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', ]
- 编写modle
from django.db import models # Create your models here. class Blogs(models.Model): title = models.CharField(max_length = 150) # 博客标题 content = models.TextField() # 博客内容 create_time = models.DateTimeField() # 创建时间
- 生成数据库
python manage.py makemigrations blog
python manage.py migrate
- makemigrations和migrate区别
1 python manage.py makemigrations appname
在该app下建立 migrations目录,并记录下你所有的关于modles.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件
2 python manage.py migrate appname
将该改动作用到数据库文件。如果要想精确到某一个迁移文件则可以使用:python manage.py migrate appname 文件名
5 创建视图和路由
- 视图
from django.http import HttpResponse, JsonResponse from blog.models import Blogs # Create your views here. def blog_list(request): blogs_obj = Blogs.objects.all() # 获取所有数据 blogs = [] for blog in blogs_obj: # 可迭代 blogs.append({"title":blog.title, "content":blog.content, "create_time":blog.create_time}) resp = { 'code': 1, 'blogs': blogs, 'msg': '请求博客列表成功!' } return JsonResponse(resp, safe=False) # JsonResponse返回一个非字典的类型时,safe参数要设置为False
- 路由
from django.contrib import admin from django.urls import path from blog import views as blog_views urlpatterns = [ path('admin/', admin.site.urls), path('blog_list/', blog_views.blog_list, name='blog_list'), ]
6 请求
7 admin后台添加log应用
- 新增内容(blog 》admin.py中增加)
from django.contrib import admin from blog.models import Blogs # Register your models here. class BlogsAdmin(admin.ModelAdmin): list_display = ['title', 'content', 'create_time'] # 后台注册 blog admin.site.register(Blogs, BlogsAdmin)
- 重启服务
- admin后台查看结果