Django入门笔记
Django安装(python2.7)
版本对照
1
| pip --default-timeout=100 install -i https://pypi.mirrors.ustc.edu.cn/simple/ django==1.8
|
创建第一个项目
进入提前创建的文件夹
1 2 3 4
| django-admin startproject HelloWorld
cd HelloWorld/HelloWorld
|
创建xx.py文件
1 2 3
| from django.http import HttpResponse def hello(request): return HttpResponse("Hello,world")
|
找到urls.py文件这个文件作用是保存路径和函数的对应关系,代码替换
1 2 3 4 5 6 7 8 9 10
| from django.conf.urls import url from . import views
urlpatterns = [ # Examples: # url(r'^$', 'HelloWord.views.home', name='home'), # url(r'^blog/', include('blog.urls')),
url(r'^', views.hello), ]
|
在目录下使用命令,启动服务器自己设定端口
1
| python manage.py runserver 127.0.0.1:8000
|
接下来打开浏览器就能看到
创建MTV项目
M =model
T =view
V =controller
同上代码创建项目,在本项目内创建子目录(也就是子功能)
1 2
| python manage.py startapp goods
|
在目录下找到settings.py在INSTALLED_APPS中将刚才两个项目添加进去,运行命令(ip也可以不要)
1
| python manage.py runserver
|
启动mysql
启动服务 输入密码
1 2
| net start mysql mysql -u root -p
|
我使用的是Navicat for MySQL
然后在Djang创建的目录下找到刚才与上面相同的配置文件找到DATABASES修改和添加配置
1 2 3 4 5 6 7 8 9 10 11
| 'ENGINE': 'django.db.backends.mysql', #数据库的名字 'NAME':'' , #数据库地址 'HOST':"localhost", #端口 'PORT':'3306', #用户名 'USER':'root', #密码 'PASSWORD':'root',
|
在_init__.py中
1 2 3
| importpy mysql # 因为本身Django不支持mysql语句 pymysql.install_as_MySQLdb()
|
在项目中找到模型也就是models.py中创建数据库表以及字段
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| from django.db import models
# Create your models here. #商品分类表 class GoodsCategory(models.Model): #分类的名称 如果类型是字符串类型 max_length必须要 cat_name=models.CharField(max_length=30) #分类的样式 cat_css = models.CharField(max_length=20) #分类的图片 图片路径 cat_img = models.ImageField(upload_to='cag') #商品表 class GoodsInfo(models.Model): #商品名字 goods_name = models.CharField(max_length=100) #商品价格 default 默认为0 goods_price=models.IntegerField(default=0) #商品描述 goods_desc=models.CharField(max_length=2000) #商品图片 goods_img=models.ImageField(upload_to='goods') #商品分类 定义外键 goods_cag=models.ForeignKey('GoodsCategory')
from django.db import models class OrderInfo(models.Model): status=( (1,'待付款'), (2, '待发货'), (3, '待收货'), (4, '已完成'), ) #订单编号 order_id =models.CharField(max_length=100) #收货地址 order_address=models.CharField(max_length=100) #收货人 order_recv=models.CharField(max_length=50) #联系电话 order_phone=models.CharField(max_length=11) #运费 order_fee=models.IntegerField(default=10) #订单状态 order_status=models.IntegerField(default=1,choices=status)
#订单备注 order_extra=models.CharField(max_length=200) #订单商品表 class OrderGoods(models.Model): #所属商品 链接外键 goods_info=models.ForeignKey('goods.GoodsInfo') #商品数量 goods_num=models.IntegerField #商品所属订单 链接外键 goods_order=models.ForeignKey('OrderInfo'
|
执行语句 第一句会生成两个文件 两个文件就是创建sql语句 也可以用命令查看 第二句是执行sql语句 这时候会在数据库中看到我们创建的表
1 2
| python manage.py makemigrations python manage.py migrate
|
创建视图
1.需要创建我们的templates也就是前端页面
2.在settings中TEMPLATES列表中’DIRS’: [os.path.join(BASE_DIR,’templates’)],添加我们的路径
3.在views中使用render函数返回页面
1
| return render(request,'index.html')
|
模板传值
使用render方法
1
| return render(request,'index.html',{'name':'张三','age':19})
|
在index使用显示
静态显示
新建静态文件夹 在配置文件中添加静态文件的路径
1
| STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
|
创建主页
最后简单的预览
项目地址
点击找到Pthoto
GitHub上传
1 2 3 4
| hexo new post Django入门
hexo g -d
|