• Django入门与实践


    安装:
    1、https://www.djangoproject.com/查找最新版本
    2、pip install Django==1.10.6安装Django
     
    创建项目:
    1、打开命令行,进入想要安置项目的目录,django-admin startproject myblog
    manage.py:与项目进行交互的命令行工具集的入口;项目管理器;执行python manage.py可以查看所有命令,运行命令:python manage.py runserver(启动服务器,还可后面跟着端口号直接设定端口号,否则会默认8000)
    wspi.py英文名(Python Web Server Getway Interface)中文名:Python服务器网关接口;是Python应用与Web服务器之间的接口
    urls.py:URL配置文件
    setting.py总配置文件 BASE_DIR:项目的根目录
    SECRET_KEY:安全码
    DEBUG=True/False
    ALLOWED_HOSTS=[]里面可以输入允许外界访问的host,例如如果输入localhost,则不可以使用id进行访问
    INSTALLED_APPS:已安装的应用,如果我们创建了应用需要手动写到这里面
    ROOT_URLCONF:url的根文件
    templates:模板的配置
    databases:配置数据库,可以打开上面的链接查看如何配置
    STATIC_URL:静态文件的地址
    __init__.py:声明模块的文件,默认为空
    创建应用:
    1、打开命令行,进入项目中manage.py同级目录,命令行输入:python manage.py startapp blog
    2、将‘blog’添加到INSTALLED_APPS中
    应用目录介绍
    migrations:数据移植模块,内容自动生成
    admin.py:该后台应用管理系统配置
    apps.py:该应用的一些配置,Django1.9以后自动生成
    models.py:数据模型模块,使用ORM框架
    test.py:自动化测试模块
    view.py:执行响应的代码所在的模块,代码逻辑处理的主要地点,项目大部分代码都在这里编写
    3、编写代码
    4、配置urls.py
     
    开发templates
    1、在app的根目录下创建名为templates的目录,再建一个文件夹名称与模块名称相同
    2、 在该文件夹下创建HTML文件
    3、在views.py中返回return render(request, 'blog/index.html')
     
    Models
    ORM:对象关系映射
    编写models
    1、在应用根目录下创建models.py,并引入models模块
    2、创建类,继承models.Model,该类即是一张数据表
    3、在类中创建字段
    如何创建字段:
    字段即类里面的属性(变量):attr=models.CharField(max_length=64,title='title') 字段以及字段的可选参数可以参考https://docs.djangoproject.com/en/1.10/ref/models/fields/
    生成数据表:
    1、命令行进入manage.py同级目录
    2、执行python manage.py makemigrations app名(可选,如果不写默认生成该项目下的所有应用都生成迁移)
    3、再执行python manage.py migrate
    查看数据表:
    1、Django会自动在app/migrations/目录下生成移植文件
    2、执行python manage.py sqlmigrate 应用名 文件id 查看sql语句
    页面呈现数据:
    后台步骤
    1、views.py中import models
    2、article=models.Article.objects.get(pk=1)主键为1的数据
    3、 render(request,page,{'article':article})
    前端步骤
    1、模板可以直接使用对象以及对象的“.”操作{{article.title}}
     
    Admin:
    配置admin:python manage.py createsuperuser 创建超级用户,回车后设置用户名、邮箱、密码
    修改setting.py里的LANGUAGE_CODE = 'zh_Hans'改成中文字体
    配置应用
    1、在应用下admin.py中引入自身的models模块(或模块中的类)
    2、编辑admin.py:admin.site.register(models.Article)
    3、修改数据默认显示的名称:在Article类下面添加一个方法,根据python的版本选择(python3):__str__(self)和(python2.7):__unicode__(self),方法里面return self.title
     
    完善博客
    博客页面设计:1、博客主页面;2、博客内容页面;3、博客撰写页面
    博客主页面:1、文章标题列表,超链接;2、 发表博客按钮(超链接)
    实现:views.py修改
    def index(request):
    articles=models.Artical.objects.all()
    return render(request, 'blog/index.html',{'articles':articles})
    index.html修改
    <body>
    <h1><a href="">新文章</a></h1>
    {% for article in articles %}
    <a href="">{{article.title}}</a>
    <br/>
    {% endfor %}
    </body>
    博客文章页面:1、标题;2、内容;3、修改文章按钮
    在views.py中添加
    def article_page(request, article_id):
    article=models.Artical.objects.get(pk=article_id)
    return render(request, 'blog/article_page.html', {'article': article})
    然后添加模板article_page.xml
    最后修改urls.py文件,添加url:url(r'^article/(?P<article_id>[0-9]+)$', views.article_page),其中:url正则中的祖名必须和参数名保持一致
    Django模板中的超链接配置
    超链接的目标地址:href后面是目标地址,template中可以用“{%url 'app_name:url_name' param%}”其中app_name和url_name都是在url中配置的
    再配url:
    url函数的名称参数根urls,写在include()的第二个参数位置,namespace='blog'
    应用下则写在url()的第三个参数位置,name='article'
    主要取决于是否使用include引用了另一个url配置文件
    博客撰写界面:标题编辑栏、文章内容编辑区域、提交按钮
    编辑响应函数:
    使用request.POST['参数名']获取表单数据,models.Article.objects.creat(title,content)创建对象
    在form的action中添加设置的URL
    涉及POST方法提交表单的,前端页面应该加上:{%csrf_token%},防范跨站请求伪造
    修改文章界面
    通过article.id是否为0来判断编辑界面是新建还是修改
    如果是修改最后需要,article.title=title article.content=content article.save()
     
    templates过滤器
    {{value|filter}}
    例如:{{list_nums|length}}
    过滤器可以叠加{{value|filter1|filter2|filter3|......}}
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    由Kaggle竞赛wiki文章流量预测引发的pandas内存优化过程分享
    Python奇技淫巧 持续更新中....
    波士顿房价预测 最简单入门机器学习 Jupyter
    机器学习基本流程整理 这一篇就够啦
    阅读kaggle上大佬们的kernel
    wechat+项目开源分享 让你的微信账号有趣起来
    ✍36 PyQt5 模块错误排除
    ✍41 搭建wordpress&花生壳穿透
    ✍44.vs code远程编辑代码
    ✍42.图片识别相关cv2
  • 原文地址:https://www.cnblogs.com/zhaosunwei/p/7230330.html
Copyright © 2020-2023  润新知