python初心者_Alyssum青阳的博客-程序员宅基地

技术标签: django  django入门  Python  


实际上,此文写下的时候已经离我真正踏入python项目化 的大门已经过去一年多了,但是仍然有一种还处于初心者的感觉,对新的环境和知识感到手足无措,上下求索。去年的我非常稚嫩,现在依旧。不明白卡在哪里了,像一棵生长十分缓慢的树,大概是环境驱动型人格吧。
说实话,我面对未来实在是手足无措,其原因大概是没有做足准备,但是面对别人还是要轻松的微笑啊,总不能让其他人替我担心吧?只好尽力整理一下自己当初的心情,当初那种无知的心情(苦笑)

没有什么特别的愿景,只希望一切顺顺利利

项目快速上手

mkdir 文件夹
git clone 仓库url
# 创建虚拟环境并指定PYTHON版本
# 2.7
virtualenv venv --python=python2.7

# 3.6
# 方法1
virtualenv venv --python=python3.6 
# 方法2
python3 -m venv venv(2、3环境共存)
或者
python -m venv venv
source venv/bin/activate

pip install -r requirements.txt

python manage.py runserver 0:9900

python版本问题

当一台主机同时存在两个版本的python(2.7&3.8)时,一般会采用系统PATH中配置的那个
但是

使用pip和python命令唤醒2.7,使用pip3和python3命令唤醒3.8

2.7python与全部版本mysql适配,以及适配django1.10

3.6python与所有版本django适配以及适配mysql8.0

Django基础

1.models.py

里面写表的结构类 运行

python manage.py makemigrations  app名
python manage.py migrate app名

生成数据表

2.views.py

通过导入models.py文件来创建数据
from blog import models
def db_handle(request):
models.UserInfo.objects.create(username=‘andy’,password=‘123456’,age=33)
return HttpResponse(‘OK’)
修改数据:filter(id=1).update(age=18)#找到id=1的数据,将age改为18

3.urls.py

配置路由,访问views.py文件
from blog import views
urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^test’, views.db_handle),==>指向test的路由,跳转到views.db_handle方法,执行t1.html页面
#注:lrhold/abc表示的是根目录下的abc文件,而domain/abc/指的是 abc目录下的default文件,带不带斜杠常用于SEO优化
]

4.调用模板:settings.py文件(前后端不分离)

配置模板的路径
TEMPLATES=[
{

‘DIRS’: [os.path.join(BASE_DIR,‘templates’)],#配置模板路径
},]

5.连接数据库

pip install PyMySQL
修改:配置文件同目录下的init.py
	import pymysql
 	pymysql.install_as_MySQLdb()
或者
pip install mysqlclient

方法1.
修改settings中的DATABASES变量

方法2.
数据库配置存放在mysql.cnf
在settings中引用:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DATABASES = getDatabase(BASE_DIR)
import platform
import os

def getDatabase(base_dir):
    p = platform.system()
    if p == 'Windows':
        return {
    
            'default': {
    
                'ENGINE': 'django.db.backends.mysql',
                'OPTIONS': {
    
                    "read_default_file": os.path.join(base_dir, 'mysqltest.cnf'),
                }
            }
        }
    else:
        return {
    
            'default': {
    
                'ENGINE': 'django.db.backends.mysql',
                'OPTIONS': {
    
                    "read_default_file": os.path.join(base_dir, 'mysql.cnf'),
                }
            }
        }

创建django项目

pip3 install django==版本号
django-admin startproject blog_project ==》cd(注意不要.py)
python manage.py startapp blog
python manage.py runserver 8000

查看版本

python -m django --version

注意事项

1.django连接数据库时页面显示url变量不匹配:将url第一个变量置空

urlpatterns = [
	url('^', admin.site.urls),
	url('^', index, name='index'),
]

2.配置settings.py==>INSTALLED_APP添加app名
3.配置settings.py==>ALLOWED_HOSTS = [‘10.xxx.xxx.xxx’,]
4.使用vscode 的sftp连接远程linux时提示权限出错,应当回退vscode版本至1.34
5.windows没有python-dev包,也不能在windows上部署ngnix+uswgi服务器,pip安装会失败

服务部署 uwsgi+nginx

1.启动:uwsgi --ini uwsgi.ini
2.写一个ngnix.conf放到项目下面,将这个conf软链接或者移到/etc/nginx/sites-enabled/下面,最后service nginx reload

[uwsgi.ini]
# 使用9100端口
http= :9100
#socket =  :9100
# 项目位置 mysite是我的项目名称
chdir           = /home/liting/projects/demand-management/logsites
# 修改为自己的项目名称即可
module          = logsites.wsgi
# 虚拟环境目录 env是我的服务器虚拟环境名称
home            = /home/liting/workspace/Envs/env3
master          = true
# 最大工作进程,一般根据核心数设置,也可以任意设置
processes       = 4
vacuum          = true
# 日志文件
daemonize = /home/liting/projects/demand-management/logsites/uwsgi.log
# 静态文件目录
static-map = /static=/home/liting/projects/demand-management/logsites/static

pidfile=uwsgi.pid
daemonize=uswgi.log
[nginx.conf]
server {
    
	listen      80;
	server_name    10.xxx.xxx.xxx:9100;
	charset     utf-8;
	client_max_body_size 75M;
	
	# 修改为你的媒体文件目录
	location /media  {
    
		alias /home/liting/projects/demand-management/logsites/media;  # your Django project's media files - amend as required
	}
	
	# 修改为你的静态文件目录
	location /static {
    
		alias /home/liting/projects/demand-management/logsites/static; # your Django project's static files - amend as required
	}
	location / {
    
		# 这个是上面uwsgi.ini设置的8080端口,前后要一致,nginx就算靠这个和uwsgi通信的
		uwsgi_pass  10.xxx.xxx.xxx:9100;
		include     /etc/nginx/uwsgi_params;
	}
}

批量生成测试数据

参考 https://www.zmrenwu.com/courses/hellodjango-blog-tutorial/materials/80/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35522118/article/details/117218099

智能推荐

优化你的PowerBuilder程序_iteye_15968的博客-程序员宅基地

一段程序,完成了所需要的功能固然重要,但是提高执行效率,提高代码的可重复利用性,提高程序的可读性也是很重要的。刚刚读了一个前辈的帖子,感觉受益菲浅,拿将出来与大家共享 优化你的PowerBuilder程序 一、处理 SQL 语句 1、缓冲 SQL 语句 在应用程序中,有时需要反复调用同一组 SQL语句,在这种情况下,可以通过在应用中为这些 SQL 建立缓冲区来提高执行性能。在缺省情况下...

显卡故障分析及处理_Jacky_20150325的博客-程序员宅基地

 一、接触不良  肉眼可见的接触不良,如板卡一头高一头底的,那是轻而易举就可以排除的。不过有一些显卡的接触不良非常的隐蔽,表面上看安装得很好,但实际上接触不良,导致很多莫名其妙的故障。   案例:一台毒龙650机器,是2001年春节装的。一段时间后,开机不正常,经常在第一次开机时全黑无反应,切断电源后再开机则成功,好像系统要“预热”一样。 分析:这个故障看上去是电源的问题,也确实在一...

矩阵求导术_哈赛尅的博客-程序员宅基地

利用微分求导标量对向量: df=(∂f∂x)Tdx{\rm d}f = \left(\frac{\partial f}{\partial \boldsymbol x}\right)^T{\rm d}\boldsymbol xdf=(∂x∂f​)Tdx标量对矩阵:df=tr[(∂f∂X)TdX]{\rm d}f = {\rm tr}\left[\left(\frac{\partial f}{\partial X}\right)^T{\rm d}X\right]df=tr[(∂X∂f​)TdX]向量

serverStatus详解_莫薇的博客-程序员宅基地_serverstatus

serverStatus原文链接:https://docs.mongodb.com/manual/reference/command/serverStatus/index.html定义 行为 输出*定义==serverStatusserverStatus命令返回一个文档,该文档提供数据库状态的概述。监控应用程序可以定期运行此命令收集有关该实例的统计信息。db....

dapper_chouwei0473的博客-程序员宅基地

https://github.com/StackExchange/Dapper 转载于:https://my.oschina.net/arbean/blog/907936

随便推点

win8服务器备份在哪个文件夹,关于使用win8.1自带系统映像备份的问题_杨力扬的博客-程序员宅基地

您好,不建议您使用该方法进行操作(如果您要操作的话,请一定要做好个人备份和创建系统还原)一、初始备份(例如:把 C 分区的系统备份到 D 分区的 Win8BF 文件夹中,备份文件名为 Win8Pro.wim):Dism /Capture-Image /ImageFile:D:\Win8BF\Win8Pro.wim /CaptureDir:C:\ /Name:Win8Pro-1 /Descripti...

Array_NC106_潇雨墨临的博客-程序员宅基地

三个数的最大乘积描述给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)。解题Solution1/** * 求数组中三个数的最大乘积 * 因为数组中有正负数,所以最大乘积为,三个最大值的乘积与两个最小值和最大值的乘积中的较大值 * 快速排序 */public class Solution { public long solve (int[] A){ if(A.length==3) retur

git reset HEAD 用法_~kiss~的博客-程序员宅基地_git head reset

【git技巧】参考博客:https://blog.csdn.net/crjmail/article/details/100011063git add 时,误添加不想提交的文件,如何解决?误add所有文件git reset HEAD将所有此次修改的 file 退回到工作区误add单个文件,只撤销部分文件git reset HEAD file将此次修改的这个 file 退回到工作区以上操作使得被操作的文件图标从绿色变红色。【注意】git add 是将文件从工作区–>暂存.

Codeforces--615B--Longtail Hedgehog(贪心模拟)_playboy307的博客-程序员宅基地

B. Longtail Hedgehogtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThis Christmas Santa gave Masha a magic picture and a pe

初学者应该先学c还是c++还是Java?_二十一世紀難民的博客-程序员宅基地_先学c语言还是java好

在架构师里面,有一个共识,所有的编程语言,其实思想是相通的。作为一位初学者,可能不能马上领悟到这句话的意思,但是千里之行,始于足下,当你真正去尝试了,走了一段路,你再回头看,会有不同的感觉。回到你的问题,其实三者都可以,因为学会了其中一门,再自己去学其他语言,整个跨度就没有那么大了。从市场的反馈来看,Java 会比较热门,各大招聘网站都有相当的缺口,优秀的Java工程师,是走到哪个地方都炙手可热的。当你成功实现了目标,更好地完善自己,同时实现了自己的社会价值,你所看所想将完全不一样,周围的人也能跟你分享相同

Sql Server关于权限、角色以及登录名、用户名的总结_lusklusklusk的博客-程序员宅基地_sqlserver常用用户名

官方文档https://docs.microsoft.com/zh-cn/sql/t-sql/statements/grant-transact-sql?view=sql-server-2017权限的一点总结1、实例级别的角色是固定的,就是public、sysadmin、securityadmin、serveradmin、setupadmin、processadmin、diskadmin、dbcreator、bulkadmin2、每个数据库拥有的角色不一样,msdb数据库中引入了SQLAgentUse

推荐文章

热门文章

相关标签