python_django配置

1. django 安装
默认大家装有python
我机子上自带python2.7
所以下载了django1.11.15版本
下载后,随意解压到某个文件夹

// 完成后验证是否成功
// python shell 下输入
import django
print(django.get_version())

// 或者命令行直接输入
python -m django --version

2. django 创建项目及app

  django-admin startproject mysite
项目目录

mysite/settings.py 是整个项目的配置文件
mysite/urls.py 是整个项目的路由文件
随后执行

python manage.py startapp polls  // 创建一个app名为polls
App的目录结构

polls/models.py 是当前app所对应的数据表结构
polls/views.py 是当前app所对应的页面逻辑
创建一个polls/urls.py 是当前app所对应的路由文件
更改mysite/urls.py,polls/urls.py使app的路由文件生效

mysite/urls.py
  from django.contrib import admin
  from django.urls import include, path

  urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
  ]
polls/urls.py
  from django.urls import path
  from . import views

  urlpatterns = [
    path('', views.index, name='index'),
  ]

在urls.py中配置,当路由匹配到之后去执行什么方法
在polls/urls.py 中 匹配到''后执行在views.py中的index方法

注意: 主路由匹配从mysite/urls.py开始,匹配一个将减去一部分, 如上配置当访问localhost:8000/polls/时,先匹配到mysite/urls.py的 polls/ 随后将路由丢给polls/urls.py。此时url被截断为‘’,然后匹配''成功调用views.index的方法

polls/views.py 
  def index(request):
    # 可以在这里进行对数据库的操作
    return HttpResponse("Hello, world. You're at the CRUD index.")

在settings.py中注册app,否则之前在polls写的代码不会生效

mysite/settings.py 
  INSTALLED_APPS = [
    ... ,
    'polls.app.PollsConfig',
    ...
  ]

编写polls/models.py

polls/models.py
  from django.db import models
  # 定义数据字段时,无需定义id自增,django在应用时 会自动添加
  class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

完成models的定义后,需要使其在数据库中生效

python manage.py makemigrations polls  // 告诉django Models已改变
python manage.py sqlmigrate polls 0001 // 查看即将产生的sql语句
python manage.py migrate  // 使已改变的Models应用到数据库

此时无论用什么工具查看你的数据时,会有默认生成的各种表,以及刚刚在Models中定义的表。

这里注意一个坑,如果你用的sqlite3, 想要运行查看sqlite3中的表时, 需要将db.sqlite3的绝对路径写入,否则无数据。

数据库操作: 表名.objects.方法名()
Question.objects.get
注意: 这里操作得到的结果为Query Set类型 或Dict类型 ,如果需要对象的话 请使用序列化方法serializers. serialize()

最后运行命令,跑起服务

python manage.py runserver  // 默认为8000端口 

其实到这里服务就可以跑通了

由于Django自身提供了Admin用户,及操作。

 python manage.py createsuperuser  // 使用命令创建一个超级用户

然后启动服务器后访问 localhost:8000/admin 即可登陆站点管理

然后在你的app中的admin.py中将models进行注册,然后就可以在站点管理中,可视化的管理该表及其表中数据

polls/admin.py
  from django.contrib import admin
  from .models import Question
  admin.site.register(Question)
站点管理

附注:

  1. App/models.py创建字段时 所对应的字段类型
分类 模型属性类型 mysql数据库类型
布尔 BooleanField tinyint
Null BooleanField tinyint
字符 CharField varchar
TextField longtext
数字 IntegerField int
DecimalField decimal
FloatField double
日期和时间 DateField date
TimeField time
DateTimeField datetime
文件 FileField varchar
ImageField varchar

各种类型定义时需要传指定的参数,具体参数请自行百度

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容